20 #ifndef GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_KERNELS_EXPLICITSMALLSTRAIN_HPP_
21 #define GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_KERNELS_EXPLICITSMALLSTRAIN_HPP_
31 namespace solidMechanicsLagrangianFEMKernels
39 #define UPDATE_STRESS 2
59 template<
typename SUBREGION_TYPE,
60 typename CONSTITUTIVE_TYPE,
105 SUBREGION_TYPE
const & elementSubRegion,
106 FE_TYPE
const & finiteElementSpace,
107 CONSTITUTIVE_TYPE & inputConstitutiveType,
109 string const elementListName );
134 #if !defined(CALC_FEM_SHAPE_IN_KERNEL)
185 template<
typename POLICY,
186 typename KERNEL_TYPE >
189 KERNEL_TYPE
const & kernelComponent );
#define GEOS_HOST_DEVICE
Marks a host-device function.
This class provides an interface to ObjectManagerBase in order to manage edge data.
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data.
Define the base interface for finite element kernels.
traits::ViewTypeConst< typename SUBREGION_TYPE::NodeMapType::base_type > const m_elemsToNodes
The element to nodes map.
FE_TYPE const m_finiteElementSpace
static constexpr int numDofPerTestSupportPoint
static constexpr int numDofPerTrialSupportPoint
arrayView1d< integer const > const m_elemGhostRank
The element ghost rank array.
CONSTITUTIVE_TYPE::KernelWrapper const m_constitutiveUpdate
static constexpr int maxNumTestSupportPointsPerElem
Used to forward arguments to a class that implements the KernelBase interface.
Implements kernels for solving the equations of motion using the explicit Newmark method under the sm...
arrayView2d< real64 const, nodes::VELOCITY_USD > const m_vel
The array containing the nodal velocity array.
SortedArrayView< localIndex const > const m_elementList
TODO: Consider moving to finite element kernel base?
static real64 kernelLaunch(localIndex const numElems, KERNEL_TYPE const &kernelComponent)
Kernel Launcher.
GEOS_HOST_DEVICE void setup(localIndex const k, StackVariables &stack) const
Performs the setup phase for the kernel.
ExplicitSmallStrain(NodeManager &nodeManager, EdgeManager const &edgeManager, FaceManager const &faceManager, localIndex const targetRegionIndex, SUBREGION_TYPE const &elementSubRegion, FE_TYPE const &finiteElementSpace, CONSTITUTIVE_TYPE &inputConstitutiveType, real64 const dt, string const elementListName)
Constructor.
GEOS_HOST_DEVICE void quadraturePointKernel(localIndex const k, localIndex const q, StackVariables &stack) const
Performs a state update at a quadrature point.
arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const m_X
The array containing the nodal position array.
real64 const m_dt
The time increment for this time integration step.
GEOS_HOST_DEVICE real64 complete(localIndex const k, StackVariables const &stack) const
Performs the complete phase for the kernel.
static constexpr int numNodesPerElem
arrayView2d< real64, nodes::ACCELERATION_USD > const m_acc
arrayView2d< real64 const, nodes::TOTAL_DISPLACEMENT_USD > const m_u
The array containing the nodal displacement array.
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
LvArray::SortedArrayView< T, localIndex, LvArray::ChaiBuffer > SortedArrayView
A sorted array view of local indices.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
Kernel variables allocated on the stack.
real64 varLocal[numNodesPerElem][numDofPerTestSupportPoint]
C-array stack storage for element local primary variable values.
real64 fLocal[numNodesPerElem][numDofPerTrialSupportPoint]
C-array stack storage for the element local force.