BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_IF_InterpolationFunction.hpp
Go to the documentation of this file.
1//
2// Created by Christian Messe on 24.10.19.
3//
4
5#ifndef BELFEM_CL_IF_INTERPOLATIONFUNCTION_HPP
6#define BELFEM_CL_IF_INTERPOLATIONFUNCTION_HPP
7
8#include "typedefs.hpp"
9#include "Mesh_Enums.hpp"
10#include "cl_Vector.hpp"
11#include "cl_Matrix.hpp"
12
13namespace belfem
14{
15 namespace fem
16 {
24 {
25//------------------------------------------------------------------------------
26 public:
27//------------------------------------------------------------------------------
28
33
34//------------------------------------------------------------------------------
35
39 virtual ~InterpolationFunction() = default;
40
41//------------------------------------------------------------------------------
42
47 virtual void
48 param_coords( Matrix< real > & aXiHat ) const = 0;
49
50//------------------------------------------------------------------------------
51
62 virtual void
63 N( const Vector< real > & aXi,
64 Matrix< real > & aN ) const = 0;
65
66//------------------------------------------------------------------------------
67
79 virtual void
80 dNdXi( const Vector< real > & aXi,
81 Matrix< real > & adNdXi ) const = 0;
82
83//------------------------------------------------------------------------------
84
96 virtual void
97 d2NdXi2( const Vector< real > & aXi,
98 Matrix< real > & ad2NdXi2 ) const = 0;
99
100//------------------------------------------------------------------------------
101
105 virtual uint
106 number_of_bases() const = 0;
107
108//------------------------------------------------------------------------------
109
113 virtual uint
115
116//------------------------------------------------------------------------------
117
121 virtual InterpolationOrder
123
124//------------------------------------------------------------------------------
125
129 virtual InterpolationType
131
132//------------------------------------------------------------------------------
133
137 virtual GeometryType
138 geometry_type() const = 0;
139
140//------------------------------------------------------------------------------
141
145 virtual ElementType
146 element_type() const = 0;
147
148//------------------------------------------------------------------------------
149 };
150//------------------------------------------------------------------------------
151 } /* end namespace fem */
152} /* end namespace belfem */
153#endif //BELFEM_CL_IF_INTERPOLATIONFUNCTION_HPP
virtual void d2NdXi2(const Vector< real > &aXi, Matrix< real > &ad2NdXi2) const =0
calculates the second derivative of the shape function in parameter space
virtual uint number_of_dimensions() const =0
returns the number of dimensions for this shape function
virtual ElementType element_type() const =0
returns the element type
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...
virtual uint number_of_bases() const =0
returns the number of bases for this shape function
virtual GeometryType geometry_type() const =0
returns the geometry type
virtual void N(const Vector< real > &aXi, Matrix< real > &aN) const =0
evaluates the shape function at a given point
virtual InterpolationOrder interpolation_order() const =0
returns the interpolation order
InterpolationFunction()=default
trivial constructor
virtual ~InterpolationFunction()=default
trivial destructor
virtual void dNdXi(const Vector< real > &aXi, Matrix< real > &adNdXi) const =0
calculates the first derivative of the shape function in parameter space
virtual InterpolationType interpolation_type() const =0
returns the interpolation type
Definition cl_IFB_LINE3.hpp:21
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
InterpolationOrder
Definition Mesh_Enums.hpp:85
GeometryType
Definition Mesh_Enums.hpp:70