BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_IF_InterpolationFunctionTemplate.hpp
Go to the documentation of this file.
1//
2// Created by Christian Messe on 25.10.19.
3//
4
5#ifndef BELFEM_CL_IF_INTERPOLATIONFUNCTIONTEMPLATE_HPP
6#define BELFEM_CL_IF_INTERPOLATIONFUNCTIONTEMPLATE_HPP
7
9#include "assert.hpp"
10
11namespace belfem
12{
13 namespace fem
14 {
15//------------------------------------------------------------------------------
23 template< GeometryType G, InterpolationType T, uint D, uint B >
25 {
26//------------------------------------------------------------------------------
27 public:
28//------------------------------------------------------------------------------
29
34
35//------------------------------------------------------------------------------
36
40 ~InterpolationFunctionTemplate() override = default;
41
42//------------------------------------------------------------------------------
43
48 void
49 param_coords( Matrix< real > & aXiHat ) const override
50 {
51 BELFEM_ERROR( false,
52 "illegal call to template function InterpolationFunctionTemplate::param_coords()" );
53 }
54
55//------------------------------------------------------------------------------
56
67 void
68 N( const Vector< real > & aXi,
69 Matrix< real > & aN ) const override
70 {
71 BELFEM_ERROR( false,
72 "illegal call to template function InterpolationFunctionTemplate::N()" );
73 }
74
75//------------------------------------------------------------------------------
76
88 void
89 dNdXi( const Vector< real > & aXi,
90 Matrix< real > & adNdXi ) const override
91 {
92 BELFEM_ERROR( false,
93 "illegal call to template function InterpolationFunctionTemplate::adNdXi()" );
94 }
95
96//------------------------------------------------------------------------------
97
109 void
111 Matrix< real > & ad2NdXi2 ) const override
112 {
113 BELFEM_ERROR( false,
114 "illegal call to template function InterpolationFunctionTemplate::ad2NdXi2()" );
115 }
116
117//------------------------------------------------------------------------------
118
122 uint
123 number_of_bases() const override
124 {
125 return B;
126 }
127
128//------------------------------------------------------------------------------
129
133 uint
134 number_of_dimensions() const override
135 {
136 return D;
137 }
138
139//------------------------------------------------------------------------------
140
145 interpolation_order() const override
146 {
147 BELFEM_ERROR( false,
148 "illegal call to template function InterpolationFunctionTemplate::interpolation_order()" );
149
151 }
152
153//------------------------------------------------------------------------------
154
159 interpolation_type() const override
160 {
161 return T;
162 }
163
164//------------------------------------------------------------------------------
165
170 geometry_type() const override
171 {
172 return G;
173 }
174
175//------------------------------------------------------------------------------
176
181 element_type() const override
182 {
183 BELFEM_ERROR( false,
184 "illegal call to template function InterpolationFunctionTemplate::element_type()" );
185
187 }
188
189//------------------------------------------------------------------------------
190
191 };
192
193//------------------------------------------------------------------------------
194 }
195}
196#endif //BELFEM_CL_IF_INTERPOLATIONFUNCTIONTEMPLATE_HPP
#define BELFEM_ERROR(aCheck,...)
Definition assert.hpp:264
InterpolationFunction()=default
trivial constructor
void param_coords(Matrix< real > &aXiHat) const override
returns a matrix containing the parameter coordinates of the nodes < number of dimensions x number of...
Definition cl_IF_InterpolationFunctionTemplate.hpp:49
InterpolationType interpolation_type() const override
returns the interpolation type
Definition cl_IF_InterpolationFunctionTemplate.hpp:159
InterpolationOrder interpolation_order() const override
returns the interpolation order
Definition cl_IF_InterpolationFunctionTemplate.hpp:145
uint number_of_bases() const override
returns the number of bases for this shape function
Definition cl_IF_InterpolationFunctionTemplate.hpp:123
void d2NdXi2(const Vector< real > &aXi, Matrix< real > &ad2NdXi2) const override
calculates the second derivative of the shape function in parameter space
Definition cl_IF_InterpolationFunctionTemplate.hpp:110
~InterpolationFunctionTemplate() override=default
trivial destructor
ElementType element_type() const override
returns the element type
Definition cl_IF_InterpolationFunctionTemplate.hpp:181
void dNdXi(const Vector< real > &aXi, Matrix< real > &adNdXi) const override
calculates the first derivative of the shape function in parameter space
Definition cl_IF_InterpolationFunctionTemplate.hpp:89
GeometryType geometry_type() const override
returns the geometry type
Definition cl_IF_InterpolationFunctionTemplate.hpp:170
uint number_of_dimensions() const override
returns the number of dimensions for this shape function
Definition cl_IF_InterpolationFunctionTemplate.hpp:134
void N(const Vector< real > &aXi, Matrix< real > &aN) const override
evaluates the shape function at a given point
Definition cl_IF_InterpolationFunctionTemplate.hpp:68
InterpolationFunctionTemplate()=default
trivial constructor
Definition cl_IFB_LINE3.hpp:21
@ D
Damping matrix (reserved for second-order).
Definition cl_TimestepMatrices.hpp:34
USER GUIDES:
Definition cl_Capacitor.cpp:16
InterpolationType
Definition Mesh_Enums.hpp:99
unsigned int uint
Definition typedefs.hpp:30
ElementType
Element types.
Definition Mesh_Enums.hpp:27
@ UNDEFINED
Definition Mesh_Enums.hpp:64
InterpolationOrder
Definition Mesh_Enums.hpp:85
@ UNDEFINED
Definition Mesh_Enums.hpp:93
GeometryType
Definition Mesh_Enums.hpp:70