BELFEM
0.9.3
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_IF_InterpolationFunction.hpp
Go to the documentation of this file.
1
/*
2
* BELFEM -- The Berkeley Lab Finite Element Framework
3
* Copyright (c) 2026, The Regents of the University of California,
4
* through Lawrence Berkeley National Laboratory (subject to receipt of any required
5
* approvals from the U.S. Dept. of Energy). All rights reserved.
6
*
7
* Developers: Christian Messe, Gregory Giard
8
*
9
* See the top-level LICENSE file for the complete license and disclaimer.
10
*/
11
12
#ifndef BELFEM_CL_IF_INTERPOLATIONFUNCTION_HPP
13
#define BELFEM_CL_IF_INTERPOLATIONFUNCTION_HPP
14
15
#include "
typedefs.hpp
"
16
#include "
Mesh_Enums.hpp
"
17
#include "
cl_Vector.hpp
"
18
#include "
cl_Matrix.hpp
"
19
20
namespace
belfem
21
{
22
namespace
fem
23
{
30
class
InterpolationFunction
31
{
32
//------------------------------------------------------------------------------
33
public
:
34
//------------------------------------------------------------------------------
35
39
InterpolationFunction
() =
default
;
40
41
//------------------------------------------------------------------------------
42
46
virtual
~InterpolationFunction
() =
default
;
47
48
//------------------------------------------------------------------------------
49
54
virtual
void
55
param_coords
(
Matrix< real >
& aXiHat )
const
= 0;
56
57
//------------------------------------------------------------------------------
58
69
virtual
void
70
N
(
const
Vector< real >
& aXi,
71
Matrix< real >
& aN )
const
= 0;
72
73
//------------------------------------------------------------------------------
74
86
virtual
void
87
dNdXi
(
const
Vector< real >
& aXi,
88
Matrix< real >
& adNdXi )
const
= 0;
89
90
//------------------------------------------------------------------------------
91
103
virtual
void
104
d2NdXi2
(
const
Vector< real >
& aXi,
105
Matrix< real >
& ad2NdXi2 )
const
= 0;
106
107
//------------------------------------------------------------------------------
108
112
virtual
uint
113
number_of_bases
()
const
= 0;
114
115
//------------------------------------------------------------------------------
116
120
virtual
uint
121
number_of_dimensions
()
const
= 0;
122
123
//------------------------------------------------------------------------------
124
128
virtual
InterpolationOrder
129
interpolation_order
()
const
= 0;
130
131
//------------------------------------------------------------------------------
132
136
virtual
InterpolationType
137
interpolation_type
()
const
= 0;
138
139
//------------------------------------------------------------------------------
140
144
virtual
GeometryType
145
geometry_type
()
const
= 0;
146
147
//------------------------------------------------------------------------------
148
152
virtual
ElementType
153
element_type
()
const
= 0;
154
155
//------------------------------------------------------------------------------
156
};
157
//------------------------------------------------------------------------------
158
}
/* end namespace fem */
159
}
/* end namespace belfem */
160
#endif
//BELFEM_CL_IF_INTERPOLATIONFUNCTION_HPP
Mesh_Enums.hpp
cl_Matrix.hpp
cl_Vector.hpp
belfem::Matrix< real >
belfem::Vector< real >
belfem::fem::InterpolationFunction::d2NdXi2
virtual void d2NdXi2(const Vector< real > &aXi, Matrix< real > &ad2NdXi2) const =0
calculates the second derivative of the shape function in parameter space
belfem::fem::InterpolationFunction::number_of_dimensions
virtual uint number_of_dimensions() const =0
returns the number of dimensions for this shape function
belfem::fem::InterpolationFunction::element_type
virtual ElementType element_type() const =0
returns the element type
belfem::fem::InterpolationFunction::param_coords
virtual void param_coords(Matrix< real > &aXiHat) const =0
returns a matrix containing the parameter coordinates of the nodes < number of dimensions x number of...
belfem::fem::InterpolationFunction::number_of_bases
virtual uint number_of_bases() const =0
returns the number of bases for this shape function
belfem::fem::InterpolationFunction::geometry_type
virtual GeometryType geometry_type() const =0
returns the geometry type
belfem::fem::InterpolationFunction::N
virtual void N(const Vector< real > &aXi, Matrix< real > &aN) const =0
evaluates the shape function at a given point
belfem::fem::InterpolationFunction::interpolation_order
virtual InterpolationOrder interpolation_order() const =0
returns the interpolation order
belfem::fem::InterpolationFunction::InterpolationFunction
InterpolationFunction()=default
trivial constructor
belfem::fem::InterpolationFunction::~InterpolationFunction
virtual ~InterpolationFunction()=default
trivial destructor
belfem::fem::InterpolationFunction::dNdXi
virtual void dNdXi(const Vector< real > &aXi, Matrix< real > &adNdXi) const =0
calculates the first derivative of the shape function in parameter space
belfem::fem::InterpolationFunction::interpolation_type
virtual InterpolationType interpolation_type() const =0
returns the interpolation type
belfem::fem
Definition
cl_IFB_LINE3.hpp:21
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::InterpolationType
InterpolationType
Definition
Mesh_Enums.hpp:99
belfem::uint
unsigned int uint
Definition
typedefs.hpp:30
belfem::ElementType
ElementType
Element types.
Definition
Mesh_Enums.hpp:27
belfem::InterpolationOrder
InterpolationOrder
Definition
Mesh_Enums.hpp:85
belfem::GeometryType
GeometryType
Definition
Mesh_Enums.hpp:70
typedefs.hpp
src
fem
interpolation
cl_IF_InterpolationFunction.hpp
Generated by
1.18.0