GEOSX
|
Define the base interface for implicit finite element kernels. More...
#include <SparsityKernelBase.hpp>
Public Types | |
using | Base = ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > |
Alias for the base class. (i.e. geosx::finiteElement::ImplicitKernelBase) | |
Public Types inherited from geosx::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > | |
using | Base = KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > |
Alias for the base class. (i.e. geosx::finiteElement::KernelBase) | |
Public Member Functions | |
SparsityKernelBase (NodeManager const &nodeManager, EdgeManager const &edgeManager, FaceManager const &faceManager, SUBREGION_TYPE const &elementSubRegion, FE_TYPE const &finiteElementSpace, CONSTITUTIVE_TYPE *const inputConstitutiveType, arrayView1d< globalIndex const > const &inputDofNumber, globalIndex const rankOffset, SparsityPattern< globalIndex > &inputSparsity) | |
Constructor. More... | |
GEOSX_FORCE_INLINE real64 | complete (localIndex const k, StackVariables &stack) const |
Performs the complete phase for the kernel. More... | |
Public Member Functions inherited from geosx::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > | |
ImplicitKernelBase (NodeManager const &nodeManager, EdgeManager const &edgeManager, FaceManager const &faceManager, SUBREGION_TYPE const &elementSubRegion, FE_TYPE const &finiteElementSpace, CONSTITUTIVE_TYPE *const inputConstitutiveType, arrayView1d< globalIndex const > const &inputDofNumber, globalIndex const rankOffset, CRSMatrixView< real64, globalIndex const > const &inputMatrix, arrayView1d< real64 > const &inputRhs) | |
Constructor. More... | |
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE void | setup (localIndex const k, StackVariables &stack) const |
Performs the setup phase for the kernel. More... | |
Public Member Functions inherited from geosx::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > | |
KernelBase (SUBREGION_TYPE const &elementSubRegion, FE_TYPE const &finiteElementSpace, CONSTITUTIVE_TYPE *const inputConstitutiveType) | |
Constructor. More... | |
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE void | setup (localIndex const k, StackVariables &stack) const |
Performs the setup phase for the kernel. More... | |
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE void | quadraturePointKernel (localIndex const k, localIndex const q, StackVariables &stack) const |
Performs a state update at a quadrature point. More... | |
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE real64 | complete (localIndex const k, StackVariables &stack) const |
Performs the complete phase for the kernel. More... | |
Static Public Member Functions | |
template<typename POLICY , typename KERNEL_TYPE > | |
static real64 | kernelLaunch (localIndex const numElems, KERNEL_TYPE const &kernelComponent) |
Kernel Launcher. More... | |
Static Public Member Functions inherited from geosx::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > | |
template<typename POLICY , typename KERNEL_TYPE > | |
static real64 | kernelLaunch (localIndex const numElems, KERNEL_TYPE const &kernelComponent) |
Kernel Launcher. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from geosx::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > | |
static constexpr int | numTestSupportPointsPerElem = FE_TYPE::numNodes |
static constexpr int | numTrialSupportPointsPerElem = FE_TYPE::numNodes |
static constexpr int | numDofPerTestSupportPoint = NUM_DOF_PER_TEST_SP |
static constexpr int | numDofPerTrialSupportPoint = NUM_DOF_PER_TRIAL_SP |
static constexpr int | numQuadraturePointsPerElem = FE_TYPE::numQuadraturePoints |
Compile time value for the number of quadrature points per element. | |
Protected Attributes inherited from geosx::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > | |
arrayView1d< globalIndex const > const | m_dofNumber |
The global degree of freedom number. | |
globalIndex const | m_dofRankOffset |
The global rank offset. | |
CRSMatrixView< real64, globalIndex const > const | m_matrix |
The global Jacobian matrix. | |
arrayView1d< real64 > const | m_rhs |
The global residaul vector. | |
Protected Attributes inherited from geosx::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP > | |
traits::ViewTypeConst< typename SUBREGION_TYPE::NodeMapType::base_type > const | m_elemsToNodes |
The element to nodes map. | |
arrayView1d< integer const > const | m_elemGhostRank |
The element ghost rank array. | |
CONSTITUTIVE_TYPE::KernelWrapper const | m_constitutiveUpdate |
FE_TYPE const & | m_finiteElementSpace |
Define the base interface for implicit finite element kernels.
Define the base interface for finite element kernels.
SUBREGION_TYPE | The type of subregion that the kernel will act on. |
CONSTITUTIVE_TYPE | The type of constitutive model present in the subregion. |
NUM_TEST_SUPPORT_POINTS_PER_ELEM | The number of test space support points per element. |
NUM_TRIAL_SUPPORT_POINTS_PER_ELEM | The number of trial space support points per element. |
NUM_DOF_PER_TEST_SP | The number of DOF per test support point. |
NUM_DOF_PER_TRIAL_SP | The number of DOF per trial support point. |
KernelBase defines an interface for implementing finite element kernels that will be callable by the family of kernel launch functions. Specific physics kernels may or may not derive from KernelBase, but must follow the same interface in order to be callable from the generic launching functions.
The template parameters of KernelBase should be duplicated as part of the interface, EXCEPT for NUM_DOF_PER_TEST_SP
and NUM_DOF_PER_TRIAL_SP
. These values should be set internally by the physics solver since each physics discretization will have a constant intrinsic value for these quantities. For example, when solving or the heat equation with scalar temperature as the primary variable at the support point, these will have a value of 1. In contrast, when solving a solid mechanics problem, with vector displacement as the primary variable at the support point, these will have a value of 3. Note that the interface provided by geosx::finiteElement::RegionBasedKernelApplication will construct a kernel assuming only the first 4 template arguments.
Provide common kernels for generation of CRS Sparsity patterns.
Definition at line 48 of file SparsityKernelBase.hpp.
|
inline |
Constructor.
nodeManager | Reference to the NodeManager object. |
edgeManager | Reference to the EdgeManager object. |
faceManager | Reference to the FaceManager object. |
inputDofNumber | The dof number for the primary field. |
rankOffset | dof index offset of current rank |
inputSparsity | The sparsity pattern to fill. Constructor. |
elementSubRegion | Reference to the SUBREGION_TYPE(class template parameter) object. |
inputConstitutiveType | The constitutive object. |
finiteElementSpace | Placeholder for the finite element space object, which currently doesn't do much. |
Definition at line 78 of file SparsityKernelBase.hpp.
|
inline |
Performs the complete phase for the kernel.
STACK_VARIABLE_TYPE | The type of StackVariable that holds the stack variables. This is most likely a defined in a type that derives from KernelBase. |
k | The element index. |
stack | The StackVariable object that hold the stack variables. |
The operations typically found in complete are the mapping of the local Jacobian and Residual into the global Jacobian and Residual.
In this implementation, only the matrix values are inserted, making this implementation appropriate for generating the sparsity pattern.
Definition at line 108 of file SparsityKernelBase.hpp.
|
inlinestatic |
Kernel Launcher.
POLICY | The RAJA policy to use for the launch. |
NUM_QUADRATURE_POINTS | The number of quadrature points per element. |
KERNEL_TYPE | The type of Kernel to execute. |
numElems | The number of elements to process in this launch. |
kernelComponent | The instantiation of KERNEL_TYPE to execute. |
This is a generic launching function for all of the finite element kernels that follow the interface set by KernelBase.
Definition at line 144 of file SparsityKernelBase.hpp.