BELFEM 0.9.3
Berkeley Lab Finite Element Framework
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
20namespace belfem
21{
22 namespace fem
23 {
31 {
32//------------------------------------------------------------------------------
33 public:
34//------------------------------------------------------------------------------
35
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
105 Matrix< real > & ad2NdXi2 ) const = 0;
106
107//------------------------------------------------------------------------------
108
112 virtual uint
113 number_of_bases() const = 0;
114
115//------------------------------------------------------------------------------
116
120 virtual uint
122
123//------------------------------------------------------------------------------
124
128 virtual InterpolationOrder
130
131//------------------------------------------------------------------------------
132
136 virtual InterpolationType
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
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