|
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 394 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 422 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 342 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 365 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 123 of file FiniteElementBase.hpp.
|
inline |
Getter for m_viewDetJ.
Definition at line 746 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 737 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::Pk_Pyramid_BCD< ORDER >, geos::finiteElement::H1_Wedge_Lagrange1_Gauss6, geos::finiteElement::H1_TriangleFace_Lagrange1_Gauss< NUM_Q_POINTS >, geos::finiteElement::H1_Tetrahedron_Lagrange1_Gauss< NUM_Q_POINTS >, geos::finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2, geos::finiteElement::H1_Pyramid_Lagrange1_Gauss5, geos::finiteElement::H1_Hexahedron_Lagrange1_GaussLegendre2, geos::finiteElement::ConformingVirtualElementOrder1< MAXCELLNODES, MAXFACENODES >, and geos::finiteElement::BB_Tetrahedron< ORDER >.
|
pure virtual |
Virtual getter for the number of quadrature points per element.
Implemented in geos::finiteElement::Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >, geos::finiteElement::Pk_Pyramid_BCD< ORDER >, geos::finiteElement::H1_Wedge_Lagrange1_Gauss6, geos::finiteElement::H1_TriangleFace_Lagrange1_Gauss< NUM_Q_POINTS >, geos::finiteElement::H1_Tetrahedron_Lagrange1_Gauss< NUM_Q_POINTS >, geos::finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2, geos::finiteElement::H1_Pyramid_Lagrange1_Gauss5, geos::finiteElement::H1_Hexahedron_Lagrange1_GaussLegendre2, geos::finiteElement::ConformingVirtualElementOrder1< MAXCELLNODES, MAXFACENODES >, and geos::finiteElement::BB_Tetrahedron< ORDER >.
|
pure virtual |
Virtual getter for the number of support points per element.
Implemented in geos::finiteElement::Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >, geos::finiteElement::Pk_Pyramid_BCD< ORDER >, geos::finiteElement::H1_Wedge_Lagrange1_Gauss6, geos::finiteElement::H1_TriangleFace_Lagrange1_Gauss< NUM_Q_POINTS >, geos::finiteElement::H1_Tetrahedron_Lagrange1_Gauss< NUM_Q_POINTS >, geos::finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2, geos::finiteElement::H1_Pyramid_Lagrange1_Gauss5, geos::finiteElement::H1_Hexahedron_Lagrange1_GaussLegendre2, geos::finiteElement::ConformingVirtualElementOrder1< MAXCELLNODES, MAXFACENODES >, and geos::finiteElement::BB_Tetrahedron< ORDER >.
|
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 147 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 239 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 725 of file FiniteElementBase.hpp.
|
inline |
Sets m_viewGradN equal to an input view.
| source | The view to assign to m_viewGradN. |
Definition at line 706 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 191 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 171 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 758 of file FiniteElementBase.hpp.