| 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 matrixis 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 matrixis 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 kcreated 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 kcreated 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:
![\[ grad_{j} = \sum_a^{nSupport} \left ( \frac{\partial N_a}{\partial X_j} var_{a}\right ), \]](form_5.png) 
| 
 | 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:
![\[ grad_{j} = \sum_a^{nSupport} \left ( \frac{\partial N_a}{\partial X_j} var_{a}\right ), \]](form_5.png) 
More precisely, the operator is defined as:
![\[ grad_{ij} = \sum_a^{nSupport} \left ( \frac{\partial N_a}{\partial X_j} var_{ai}\right ), \]](form_6.png) 
| 
 | 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 LEAFclass 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 qscaled 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:
![\[ R_i = \sum_a^{nSupport} \left( \frac{\partial N_a}{\partial X_j} var_{ij}\right), \]](form_7.png) 
where  is the basis function gradient,
 is the basis function gradient,  is the rank-2 symmetric tensor.
 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 qscaled 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:
![\[ R_i = \sum_a^{nSupport} \left( \frac{\partial N_a}{\partial X_j} var_{ij}\right), \]](form_7.png) 
where  is the basis function gradient,
 is the basis function gradient,  is the rank-2 symmetric tensor.
 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 qscaled 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. | 
![\[ R_i = \sum_a^{nSupport} \left ( \frac{\partial N_a}{\partial X_j} var_{ij} + N_a f_i \right ), \]](form_10.png) 
| 
 | 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 qscaled 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. | 
![\[ R_i = \sum_a^{nSupport} \left ( \frac{\partial N_a}{\partial X_j} var_{ij} + N_a f_i \right ), \]](form_10.png) 
| 
 | 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:
![\[ grad^s_{ij} = \frac{1}{2} \sum_a^{nSupport} \left ( \frac{\partial N_a}{\partial X_j} var_{ai} + \frac{\partial N_a}{\partial X_i} var_{aj}\right ), \]](form_4.png) 
| 
 | 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:
![\[ value = \sum_a^{numSupport} \left ( N_a var_a \right ), \]](form_3.png) 
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:
![\[ value = \sum_a^{numSupport} \left ( N_a var_a \right ), \]](form_3.png) 
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.