21 #ifndef GEOSX_FINITEELEMENT_SPARSITYKERNELBASE_HPP_ 22 #define GEOSX_FINITEELEMENT_SPARSITYKERNELBASE_HPP_ 43 template<
typename SUBREGION_TYPE,
44 typename CONSTITUTIVE_TYPE,
46 int NUM_DOF_PER_TEST_SP,
47 int NUM_DOF_PER_TRIAL_SP >
52 NUM_DOF_PER_TRIAL_SP >
60 NUM_DOF_PER_TRIAL_SP >;
81 SUBREGION_TYPE
const & elementSubRegion,
82 FE_TYPE
const & finiteElementSpace,
83 CONSTITUTIVE_TYPE *
const inputConstitutiveType,
92 inputConstitutiveType,
97 m_sparsity( inputSparsity )
116 if( row < 0 || row >= m_sparsity.
numRows() )
continue;
140 template<
typename POLICY,
141 typename KERNEL_TYPE >
145 KERNEL_TYPE
const & kernelComponent )
150 forAll< POLICY >( numElems,
154 typename KERNEL_TYPE::StackVariables stack;
156 kernelComponent.setup( k, stack );
158 kernelComponent.complete( k, stack );
177 template<
template<
typename,
179 typename >
class KERNEL_TEMPLATE >
190 template<
typename SUBREGION_TYPE,
191 typename CONSTITUTIVE_TYPE,
196 KERNEL_TEMPLATE< SUBREGION_TYPE,
199 KERNEL_TEMPLATE< SUBREGION_TYPE,
230 template<
typename REGION_TYPE,
231 template<
typename SUBREGION_TYPE,
232 typename CONSTITUTIVE_TYPE,
233 typename FE_TYPE >
class KERNEL_TEMPLATE >
237 string const & discretizationName,
243 regionBasedKernelApplication< serialPolicy,
244 constitutive::NullModel,
253 inputSparsityPattern );
Define the base interface for implicit finite element kernels.
Kernel variables allocated on the stack.
long long int globalIndex
Global index type (for indexing objects across MPI partitions).
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.
Class facilitating the representation of a multi-level discretization of a MeshBody.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data...
Kernel variables allocated on the stack.
static real64 kernelLaunch(localIndex const numElems, KERNEL_TYPE const &kernelComponent)
Kernel Launcher.
GEOSX_FORCE_INLINE real64 complete(localIndex const k, StackVariables &stack) const
Performs the complete phase for the kernel.
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE void setup(localIndex const k, StackVariables &stack) const
Performs the setup phase for the kernel.
This class serves to provide a "view" of a multidimensional array.
static constexpr int numRows
The number of rows in the element local jacobian matrix.
constexpr INDEX_TYPE_NC numRows() const
globalIndex const m_dofRankOffset
The global rank offset.
double real64
64-bit floating point type.
globalIndex localColDofIndex[numCols]
C-array storage for the element local column degrees of freedom.
static constexpr int numDofPerTestSupportPoint
This class provides an interface to ObjectManagerBase in order to manage edge data.
Helper struct to define a specialization of #geosx::finiteElement::SparsityKernelBase that may be use...
static real64 fillSparsity(MeshLevel &mesh, arrayView1d< string const > const &targetRegions, string const &discretizationName, arrayView1d< globalIndex const > const &inputDofNumber, globalIndex const rankOffset, SparsityPattern< globalIndex > &inputSparsityPattern)
Fills matrix sparsity.
#define GEOSX_FORCE_INLINE
Marks a function or lambda for inlining.
static constexpr int numCols
The number of columns in the element local jacobian matrix.
#define GEOSX_UNUSED_VAR(...)
Mark an unused variable and silence compiler warnings.
static constexpr int numDofPerTrialSupportPoint
std::ptrdiff_t localIndex
Local index type (for indexing objects within an MPI partition).
bool insertNonZero(INDEX_TYPE const row, COL_TYPE const col)
Insert a non zero entry in the entry (row, col).
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data...
Define the base interface for implicit finite element kernels.
globalIndex localRowDofIndex[numRows]
C-array storage for the element local row degrees of freedom.
This class provides a view into a compressed row storage matrix.