GEOS
|
Base class for FEM element implementations. More...
#include <FiniteElementBase.hpp>
Classes | |
struct | FunctionSpaceHelper |
An helper struct to determine the function space. More... | |
struct | MeshData |
Variables used to initialize the class. More... | |
struct | StackVariables |
Kernel variables allocated on the stack. More... | |
Public Member Functions | |
FiniteElementBase ()=default | |
Default Constructor. | |
GEOS_HOST_DEVICE | FiniteElementBase (FiniteElementBase const &source) |
Copy Constructor. More... | |
FiniteElementBase (FiniteElementBase &&)=default | |
Default Move constructor. | |
FiniteElementBase & | operator= (FiniteElementBase const &)=delete |
Deleted copy assignment operator. More... | |
FiniteElementBase & | operator= (FiniteElementBase &&)=delete |
Deleted move assignment operator. More... | |
virtual GEOS_HOST_DEVICE | ~FiniteElementBase () |
Destructor. | |
template<typename LEAF , typename SUBREGION_TYPE > | |
GEOS_HOST_DEVICE void | setup (localIndex const &cellIndex, typename LEAF::template MeshData< SUBREGION_TYPE > const &meshData, typename LEAF::StackVariables &stack) const |
Abstract setup method, possibly computing cell-dependent properties. More... | |
virtual GEOS_HOST_DEVICE localIndex | getNumQuadraturePoints () const =0 |
Virtual getter for the number of quadrature points per element. More... | |
virtual GEOS_HOST_DEVICE localIndex | getNumSupportPoints () const =0 |
Virtual getter for the number of support points per element. More... | |
template<typename LEAF > | |
GEOS_HOST_DEVICE localIndex | numSupportPoints (typename LEAF::StackVariables const &stack) const |
Getter for the number of support points per element. More... | |
virtual GEOS_HOST_DEVICE localIndex | getMaxSupportPoints () const =0 |
Get the maximum number of support points for this element. More... | |
template<typename LEAF > | |
GEOS_HOST_DEVICE real64 | getGradN (localIndex const k, localIndex const q, real64 const (&X)[LEAF::maxSupportPoints][3], real64(&gradN)[LEAF::maxSupportPoints][3]) const |
Get the shape function gradients. More... | |
template<typename LEAF > | |
GEOS_HOST_DEVICE real64 | getGradN (localIndex const k, localIndex const q, real64 const (&X)[LEAF::maxSupportPoints][3], typename LEAF::StackVariables const &stack, real64(&gradN)[LEAF::maxSupportPoints][3]) const |
Get the shape function gradients. More... | |
template<typename LEAF > | |
GEOS_HOST_DEVICE real64 | getGradN (localIndex const k, localIndex const q, int const X, real64(&gradN)[LEAF::maxSupportPoints][3]) const |
Get the shape function gradients. More... | |
template<typename LEAF > | |
GEOS_HOST_DEVICE real64 | getGradN (localIndex const k, localIndex const q, int const X, typename LEAF::StackVariables const &stack, real64(&gradN)[LEAF::maxSupportPoints][3]) const |
Get the shape function gradients. More... | |
template<typename LEAF , localIndex NUMDOFSPERTRIALSUPPORTPOINT, bool UPPER = false> | |
GEOS_HOST_DEVICE void | addGradGradStabilizationMatrix (typename LEAF::StackVariables const &stack, real64(&matrix)[LEAF::maxSupportPoints *NUMDOFSPERTRIALSUPPORTPOINT][LEAF::maxSupportPoints *NUMDOFSPERTRIALSUPPORTPOINT], real64 const scaleFactor=1.0) const |
Add stabilization of grad-grad bilinear form to input matrix. More... | |
template<typename LEAF , localIndex NUMDOFSPERTRIALSUPPORTPOINT> | |
GEOS_HOST_DEVICE GEOS_FORCE_INLINE void | addEvaluatedGradGradStabilizationVector (typename LEAF::StackVariables const &stack, real64 const (&dofs)[LEAF::maxSupportPoints][NUMDOFSPERTRIALSUPPORTPOINT], real64(&targetVector)[LEAF::maxSupportPoints][NUMDOFSPERTRIALSUPPORTPOINT], real64 const scaleFactor=1.0) const |
Add a grad-grad stabilization operator evaluated at a provided vector of dofs to input vector. More... | |
Static Public Member Functions | |
template<typename SUBREGION_TYPE > | |
static void | fillMeshData (NodeManager const &nodeManager, EdgeManager const &edgeManager, FaceManager const &faceManager, SUBREGION_TYPE const &cellSubRegion, MeshData< SUBREGION_TYPE > &meshData) |
Method to fill a MeshData object. More... | |
template<typename LEAF , typename SUBREGION_TYPE > | |
static void | initialize (NodeManager const &nodeManager, EdgeManager const &edgeManager, FaceManager const &faceManager, SUBREGION_TYPE const &cellSubRegion, typename LEAF::template MeshData< SUBREGION_TYPE > &meshData) |
Abstract initialization method. More... | |
template<typename SUBREGION_TYPE > | |
GEOS_HOST_DEVICE static GEOS_FORCE_INLINE void | setupStack (localIndex const &cellIndex, MeshData< SUBREGION_TYPE > const &meshData, StackVariables &stack) |
Empty setup method. More... | |
template<int N> | |
constexpr static GEOS_HOST_DEVICE PDEUtilities::FunctionSpace | getFunctionSpace () |
Getter for the function space. More... | |
template<localIndex NUMDOFSPERTRIALSUPPORTPOINT, localIndex MAXSUPPORTPOINTS, bool UPPER> | |
GEOS_HOST_DEVICE static GEOS_FORCE_INLINE void | addGradGradStabilization (StackVariables const &stack, real64(&matrix)[MAXSUPPORTPOINTS *NUMDOFSPERTRIALSUPPORTPOINT][MAXSUPPORTPOINTS *NUMDOFSPERTRIALSUPPORTPOINT], real64 const &scaleFactor) |
Empty method, here for compatibility with methods that require a stabilization of the grad-grad bilinear form. More... | |
template<localIndex NUMDOFSPERTRIALSUPPORTPOINT, localIndex MAXSUPPORTPOINTS> | |
GEOS_HOST_DEVICE static GEOS_FORCE_INLINE void | addEvaluatedGradGradStabilization (StackVariables const &stack, real64 const (&dofs)[MAXSUPPORTPOINTS][NUMDOFSPERTRIALSUPPORTPOINT], real64(&targetVector)[MAXSUPPORTPOINTS][NUMDOFSPERTRIALSUPPORTPOINT], real64 const scaleFactor) |
Empty method, here for compatibility with methods that require a stabilization of the grad-grad bilinear form. More... | |
Value Operator Functions | |
template<int NUM_SUPPORT_POINTS> | |
static GEOS_HOST_DEVICE void | value (real64 const (&N)[NUM_SUPPORT_POINTS], real64 const (&var)[NUM_SUPPORT_POINTS], real64 &value) |
Compute the interpolated value of a variable. More... | |
template<int NUM_SUPPORT_POINTS, int NUM_COMPONENTS> | |
static GEOS_HOST_DEVICE void | value (real64 const (&N)[NUM_SUPPORT_POINTS], real64 const (&var)[NUM_SUPPORT_POINTS][NUM_COMPONENTS], real64(&value)[NUM_COMPONENTS]) |
Compute the interpolated value of a vector variable. More... | |
Gradient Operator Functions | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | symmetricGradient (GRADIENT_TYPE const &gradN, real64 const (&var)[NUM_SUPPORT_POINTS][3], real64(&gradVar)[6]) |
Calculate the symmetric gradient of a vector valued support field at a point using the stored basis function gradients for all support points. More... | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE real64 | symmetricGradientTrace (GRADIENT_TYPE const &gradN, real64 const (&var)[NUM_SUPPORT_POINTS][3]) |
Calculate the trace of the symmetric gradient of a vector valued support field (i.e. the volumetric strain for the displacement field) at a point using the stored basis function gradients for all support points. More... | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | gradient (GRADIENT_TYPE const &gradN, real64 const (&var)[NUM_SUPPORT_POINTS], real64(&gradVar)[3]) |
Calculate the gradient of a scalar valued support field at a point using the input basis function gradients. More... | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | gradient (GRADIENT_TYPE const &gradN, real64 const (&var)[NUM_SUPPORT_POINTS][3], real64(&gradVar)[3][3]) |
Calculate the gradient of a vector valued support field at a point using the input basis function gradients. More... | |
Multi-Operator Functions | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | valueAndGradient (real64 const (&N)[NUM_SUPPORT_POINTS], GRADIENT_TYPE const &gradN, real64 const (&var)[NUM_SUPPORT_POINTS], real64 &value, real64(&gradVar)[3]) |
Calculate the value and gradient of a scalar valued support field at a point using the input basis function gradients. More... | |
Static Public Attributes | |
constexpr static int | numSamplingPointsPerDirection = 10 |
Number of sampling points. | |
Scattering Operator Functions | |
These functions take quadrature data and map it to the support points through some operator. | |
arrayView4d< real64 const > | m_viewGradN |
View to potentially hold pre-calculated shape function gradients. | |
arrayView2d< real64 const > | m_viewDetJ |
void | setGradNView (arrayView4d< real64 const > const &source) |
Sets m_viewGradN equal to an input view. More... | |
void | setDetJView (arrayView2d< real64 const > const &source) |
Sets m_viewDetJ equal to an input view. More... | |
arrayView4d< real64 const > | getGradNView () const |
Getter for m_viewGradN. More... | |
arrayView2d< real64 const > | getDetJView () const |
Getter for m_viewDetJ. More... | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | plusGradNajAij (GRADIENT_TYPE const &gradN, real64 const (&var_detJxW)[6], real64(&R)[NUM_SUPPORT_POINTS][3]) |
Inner product of each basis function gradient with a rank-2 symmetric tensor. More... | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | plusGradNajAij (GRADIENT_TYPE const &gradN, real64 const (&var_detJxW)[3][3], real64(&R)[NUM_SUPPORT_POINTS][3]) |
Inner product of each basis function gradient with a rank-2 symmetric tensor. More... | |
template<int NUM_SUPPORT_POINTS> | |
static GEOS_HOST_DEVICE void | plusNaFi (real64 const (&N)[NUM_SUPPORT_POINTS], real64 const (&forcingTerm_detJxW)[3], real64(&R)[NUM_SUPPORT_POINTS][3]) |
Product of each shape function with a vector forcing term. More... | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | plusGradNajAijPlusNaFi (GRADIENT_TYPE const &gradN, real64 const (&var_detJxW)[3][3], real64 const (&N)[NUM_SUPPORT_POINTS], real64 const (&forcingTerm_detJxW)[3], real64(&R)[NUM_SUPPORT_POINTS][3]) |
Inner product of each basis function gradient with a rank-2 symmetric tensor added to the product each shape function with a vector. More... | |
template<int NUM_SUPPORT_POINTS, typename GRADIENT_TYPE > | |
static GEOS_HOST_DEVICE void | plusGradNajAijPlusNaFi (GRADIENT_TYPE const &gradN, real64 const (&var_detJxW)[6], real64 const (&N)[NUM_SUPPORT_POINTS], real64 const (&forcingTerm_detJxW)[3], real64(&R)[NUM_SUPPORT_POINTS][3]) |
Inner product of each basis function gradient with a rank-2 tensor added to the product each shape function with a vector. More... | |
Base class for FEM element implementations.
Definition at line 45 of file FiniteElementBase.hpp.
|
inline |
Copy Constructor.
source | The object to copy. |
Definition at line 61 of file FiniteElementBase.hpp.
|
inlinestatic |
Empty method, here for compatibility with methods that require a stabilization of the grad-grad bilinear form.
This method is intended to be used with targetVector
being the residual and dofs
being the degrees of freedom of the previous solution.
NUMDOFSPERTRIALSUPPORTPOINT | Number of degrees of freedom for each support point. |
stack | Stack variables as filled by setupStack. |
dofs | The degrees of freedom of the function where the stabilization operator has to be evaluated. |
targetVector | The input vector to which values have to be added, seen in chunks of length NUMDOFSPERTRIALSUPPORTPOINT . |
scaleFactor | Scaling of the stabilization matrix. |
Definition at line 407 of file FiniteElementBase.hpp.
|
inline |
Add a grad-grad stabilization operator evaluated at a provided vector of dofs to input vector.
This method is used to modify a residual consistently when the jacobian includes a stabilization term.
LEAF | Type of the derived finite element implementation. |
NUMDOFSPERTRIALSUPPORTPOINT | Number of degrees of freedom for each support point. |
stack | Stack variables created by a call to setup. |
dofs | The vector of dofs to evaluate the stabilization. |
targetVector | The input vector to which values have to be added, seen in chunks of length NUMDOFSPERTRIALSUPPORTPOINT . |
scaleFactor | Optional scaling of the stabilization matrix. Defaults to 1.0. |
Definition at line 435 of file FiniteElementBase.hpp.
|
inlinestatic |
Empty method, here for compatibility with methods that require a stabilization of the grad-grad bilinear form.
NUMDOFSPERTRIALSUPPORTPOINT | Number of degrees of freedom for each support point. |
MAXSUPPORTPOINTS | Maximum number of support points allowed for this element. |
UPPER | If true only the upper triangular part of matrix is modified. |
stack | Stack variables as filled by setupStack. |
matrix | The matrix that needs to be stabilized. |
scaleFactor | Scaling of the stabilization matrix. |
Definition at line 355 of file FiniteElementBase.hpp.
|
inline |
Add stabilization of grad-grad bilinear form to input matrix.
LEAF | Type of the derived finite element implementation. |
NUMDOFSPERTRIALSUPPORTPOINT | Number of degrees of freedom for each support point. |
UPPER | If true only the upper triangular part of matrix is modified. |
stack | Stack variables created by a call to setup. |
matrix | The input matrix to which values have to be added. |
scaleFactor | Optional scaling of the stabilization matrix. Defaults to 1.0. |
Definition at line 378 of file FiniteElementBase.hpp.
|
inlinestatic |
Method to fill a MeshData object.
nodeManager | The node manager. |
edgeManager | The edge manager. |
faceManager | The face manager. |
cellSubRegion | The cell sub-region for which the element has to be initialized. |
meshData | MeshData struct to be filled. |
Definition at line 136 of file FiniteElementBase.hpp.
|
inline |
Getter for m_viewDetJ.
Definition at line 759 of file FiniteElementBase.hpp.
|
staticconstexpr |
Getter for the function space.
The | number of components per support point (i.e., 1 if scalar variable, 3 if vector variable) |
GEOS_HOST_DEVICE real64 geos::finiteElement::FiniteElementBase::getGradN | ( | localIndex const | k, |
localIndex const | q, | ||
int const | X, | ||
real64(&) | gradN[LEAF::maxSupportPoints][3] | ||
) | const |
Get the shape function gradients.
LEAF | Type of the derived finite element implementation. |
k | The element index. |
q | The quadrature point index. |
X | dummy variable. |
gradN | Return array of the shape function gradients. |
This function returns pre-calculated shape function gradients.
GEOS_HOST_DEVICE real64 geos::finiteElement::FiniteElementBase::getGradN | ( | localIndex const | k, |
localIndex const | q, | ||
int const | X, | ||
typename LEAF::StackVariables const & | stack, | ||
real64(&) | gradN[LEAF::maxSupportPoints][3] | ||
) | const |
Get the shape function gradients.
LEAF | Type of the derived finite element implementation. |
k | The element index. |
q | The quadrature point index. |
X | dummy variable. |
stack | Stack variables relative to the element k created by a call to setup. |
gradN | Return array of the shape function gradients. |
This function returns pre-calculated shape function gradients.
GEOS_HOST_DEVICE real64 geos::finiteElement::FiniteElementBase::getGradN | ( | localIndex const | k, |
localIndex const | q, | ||
real64 const (&) | X[LEAF::maxSupportPoints][3], | ||
real64(&) | gradN[LEAF::maxSupportPoints][3] | ||
) | const |
Get the shape function gradients.
LEAF | Type of the derived finite element implementation. |
k | The element index. |
q | The quadrature point index. |
X | Array of coordinates as the reference for the gradients. |
gradN | Return array of the shape function gradients. |
This function calls the function to calculate shape function gradients.
GEOS_HOST_DEVICE real64 geos::finiteElement::FiniteElementBase::getGradN | ( | localIndex const | k, |
localIndex const | q, | ||
real64 const (&) | X[LEAF::maxSupportPoints][3], | ||
typename LEAF::StackVariables const & | stack, | ||
real64(&) | gradN[LEAF::maxSupportPoints][3] | ||
) | const |
Get the shape function gradients.
LEAF | Type of the derived finite element implementation. |
k | The element index. |
q | The quadrature point index. |
X | Array of coordinates as the reference for the gradients. |
stack | Stack variables relative to the element k created by a call to setup. |
gradN | Return array of the shape function gradients. |
This function calls the function to calculate shape function gradients.
|
inline |
Getter for m_viewGradN.
Definition at line 750 of file FiniteElementBase.hpp.
|
pure virtual |
Get the maximum number of support points for this element.
This should be used to know the size of pre-allocated objects whose size depend on the number of support points.
Implemented in geos::finiteElement::Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >, geos::finiteElement::H1_Wedge_Lagrange1_Gauss6, geos::finiteElement::H1_TriangleFace_Lagrange1_Gauss1, geos::finiteElement::H1_Tetrahedron_Lagrange1_Gauss1, geos::finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2, geos::finiteElement::H1_Pyramid_Lagrange1_Gauss5, geos::finiteElement::H1_Hexahedron_Lagrange1_GaussLegendre2, and geos::finiteElement::ConformingVirtualElementOrder1< MAXCELLNODES, MAXFACENODES >.
|
pure virtual |
Virtual getter for the number of quadrature points per element.
Implemented in geos::finiteElement::Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >, geos::finiteElement::H1_Wedge_Lagrange1_Gauss6, geos::finiteElement::H1_TriangleFace_Lagrange1_Gauss1, geos::finiteElement::H1_Tetrahedron_Lagrange1_Gauss1, geos::finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2, geos::finiteElement::H1_Pyramid_Lagrange1_Gauss5, geos::finiteElement::H1_Hexahedron_Lagrange1_GaussLegendre2, and geos::finiteElement::ConformingVirtualElementOrder1< MAXCELLNODES, MAXFACENODES >.
|
pure virtual |
Virtual getter for the number of support points per element.
Implemented in geos::finiteElement::Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >, geos::finiteElement::H1_Wedge_Lagrange1_Gauss6, geos::finiteElement::H1_TriangleFace_Lagrange1_Gauss1, geos::finiteElement::H1_Tetrahedron_Lagrange1_Gauss1, geos::finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2, geos::finiteElement::H1_Pyramid_Lagrange1_Gauss5, geos::finiteElement::H1_Hexahedron_Lagrange1_GaussLegendre2, and geos::finiteElement::ConformingVirtualElementOrder1< MAXCELLNODES, MAXFACENODES >.
|
static |
Calculate the gradient of a scalar valued support field at a point using the input basis function gradients.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape function gradients. |
gradN | The basis function gradients at a point in the element. |
var | The vector valued support field that the gradient operator will be applied to. |
gradVar | The gradient. |
More precisely, the operator is defined as:
|
static |
Calculate the gradient of a vector valued support field at a point using the input basis function gradients.
Calculate the gradient of a scalar valued support field at a point using the input basis function gradients.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape function gradients. |
gradN | The basis function gradients at a point in the element. |
var | The vector valued support field that the gradient operator will be applied to. |
gradVar | The gradient. |
More precisely, the operator is defined as:
More precisely, the operator is defined as:
|
inlinestatic |
Abstract initialization method.
It calls the fillMeshData method of the specific element implementation.
LEAF | Type of the derived finite element implementation. |
nodeManager | The node manager. |
edgeManager | The edge manager. |
faceManager | The face manager. |
cellSubRegion | The cell sub-region for which the element has to be initialized. |
meshData | The struct to be filled according to the LEAF class needs. |
Definition at line 160 of file FiniteElementBase.hpp.
|
inline |
Getter for the number of support points per element.
LEAF | Type of the derived finite element implementation. |
stack | Stack variables created by a call to setup. |
Definition at line 252 of file FiniteElementBase.hpp.
|
delete |
Deleted move assignment operator.
|
delete |
Deleted copy assignment operator.
|
static |
Inner product of each basis function gradient with a rank-2 symmetric tensor.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape function gradients. |
gradN | The basis function gradients at a point in the element. |
var_detJxW | The rank-2 tensor at q scaled by J*W. |
R | The vector at each support point which will hold the result from the tensor contraction. |
More precisely, the operator is defined as:
where is the basis function gradient, is the rank-2 symmetric tensor.
Inner product of each basis function gradient with a rank-2 tensor.
|
static |
Inner product of each basis function gradient with a rank-2 symmetric tensor.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape function gradients. |
gradN | The basis function gradients at a point in the element. |
var_detJxW | The rank-2 tensor at q scaled by J*W. |
R | The vector at each support point which will hold the result from the tensor contraction. |
More precisely, the operator is defined as:
where is the basis function gradient, is the rank-2 symmetric tensor.
|
static |
Inner product of each basis function gradient with a rank-2 symmetric tensor added to the product each shape function with a vector.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape function gradients. |
gradN | The basis function gradients at a point in the element. |
var_detJxW | The rank-2 symmetric tensor at q scaled by J*W. |
N | The shape function value at a predetermined coordinate in the element. |
forcingTerm_detJxW | A vector scaled by detJxW |
R | The vector at each support point which will hold the result from the tensor contraction. |
|
static |
Inner product of each basis function gradient with a rank-2 tensor added to the product each shape function with a vector.
Inner product of each basis function gradient with a rank-2 symmetric tensor added to the product each shape function with a vector.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape function gradients. |
gradN | The basis function gradients at a point in the element. |
var_detJxW | The rank-2 symmetric tensor at q scaled by J*W. |
N | The shape function value at a predetermined coordinate in the element. |
forcingTerm_detJxW | A vector scaled by detJxW |
R | The vector at each support point which will hold the result from the tensor contraction. |
|
static |
Product of each shape function with a vector forcing term.
NUM_SUPPORT_POINTS | The number of support points for the element. |
N | The shape function value at a predetermined coordinate in the element. |
forcingTerm_detJxW | A vector scaled by detJxW |
R | The vector at each support point which will hold the result from the tensor contraction. |
|
inline |
Sets m_viewDetJ equal to an input view.
source | The view to assign to m_viewDetJ. |
Definition at line 738 of file FiniteElementBase.hpp.
|
inline |
Sets m_viewGradN equal to an input view.
source | The view to assign to m_viewGradN. |
Definition at line 719 of file FiniteElementBase.hpp.
|
inline |
Abstract setup method, possibly computing cell-dependent properties.
LEAF | Type of the derived finite element implementation. |
cellIndex | The index of the cell with respect to the cell sub region to which the element has been initialized previously (see initialize). |
meshData | A MeshData object previously filled. |
stack | Object that holds stack variables. |
Definition at line 204 of file FiniteElementBase.hpp.
|
inlinestatic |
Empty setup method.
cellIndex | The index of the cell with respect to the cell sub region. |
meshData | MeshData struct filled by fillMeshData. |
stack | Object that holds stack variables. |
Definition at line 184 of file FiniteElementBase.hpp.
|
static |
Calculate the symmetric gradient of a vector valued support field at a point using the stored basis function gradients for all support points.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape |
gradN | The basis function gradients at a point in the element. |
var | The vector valued support field that the gradient operator will be applied to. |
gradVar | The symmetric gradient in Voigt notation. |
More precisely, the operator is defined as:
|
static |
Calculate the trace of the symmetric gradient of a vector valued support field (i.e. the volumetric strain for the displacement field) at a point using the stored basis function gradients for all support points.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape |
gradN | The basis function gradients at a point in the element. |
var | The vector valued support field that the gradient operator will be applied to. |
|
static |
Compute the interpolated value of a variable.
NUM_SUPPORT_POINTS | The number of support points for the element. |
N | Array (for each support point) of shape function values at the coordinate the variable is to be interpolated. |
var | Array of variable values for each support point. |
value | The interpolated value of var . |
This is the standard finite element interpolation operator of a discrete variable defined at the support points. The operator is expressed as:
N
must be evaluated prior to calling this function.
|
static |
Compute the interpolated value of a vector variable.
NUM_COMPONENTS | Number of components for the vector variable. |
Compute the interpolated value of a variable.
NUM_SUPPORT_POINTS | The number of support points for the element. |
N | Array (for each support point) of shape function values at the coordinate the variable is to be interpolated. |
var | Array of variable values for each support point. |
value | The interpolated value of var . |
This is the standard finite element interpolation operator of a discrete variable defined at the support points. The operator is expressed as:
N
must be evaluated prior to calling this function.
|
static |
Calculate the value and gradient of a scalar valued support field at a point using the input basis function gradients.
NUM_SUPPORT_POINTS | The number of support points for the element. |
GRADIENT_TYPE | The type of the array object holding the shape |
N | Array (for each support point) of shape function values at the coordinate the variable is to be interpolated. |
gradN | The basis function gradients at a point in the element. |
var | The vector valued support field that the gradient operator will be applied to. |
value | The value at the point for which N was specified. |
gradVar | The gradient at the point for which gradN was specified. |
|
protected |
View to potentially hold pre-calculated weighted jacobian transformation determinants.
Definition at line 771 of file FiniteElementBase.hpp.