20 #ifndef GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_KERNELS_IMPLCITSMALLSTRAINNEWMARK_HPP_
21 #define GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_KERNELS_IMPLCITSMALLSTRAINNEWMARK_HPP_
29 namespace solidMechanicsLagrangianFEMKernels
44 template<
typename SUBREGION_TYPE,
45 typename CONSTITUTIVE_TYPE,
73 #if !defined(CALCFEMSHAPE)
91 SUBREGION_TYPE
const & elementSubRegion,
92 FE_TYPE
const & finiteElementSpace,
93 CONSTITUTIVE_TYPE & inputConstitutiveType,
99 real64 const (&inputGravityVector)[3],
100 real64 const inputNewmarkGamma,
101 real64 const inputNewmarkBeta,
102 real64 const inputMassDamping,
103 real64 const inputStiffnessDamping );
116 using Base::StackVariables::maxNumRows;
117 using Base::StackVariables::maxNumCols;
129 real64 dRdU_InertiaMassDamping[ maxNumRows ][ maxNumCols ];
158 void quadraturePointKernel(
localIndex const k,
175 template<
typename POLICY,
176 typename KERNEL_TYPE >
179 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.
traits::ViewTypeConst< typename SUBREGION_TYPE::NodeMapType::base_type > const m_elemsToNodes
The element to nodes map.
FE_TYPE const m_finiteElementSpace
CRSMatrixView< real64, globalIndex const > const m_matrix
The global Jacobian matrix.
static constexpr int numDofPerTestSupportPoint
static constexpr int numDofPerTrialSupportPoint
arrayView1d< globalIndex const > const m_dofNumber
The global degree of freedom number.
static constexpr int maxNumTrialSupportPointsPerElem
real64 const m_dt
time increment
static constexpr int maxNumTestSupportPointsPerElem
arrayView1d< real64 > const m_rhs
The global residaul vector.
Used to forward arguments to a class that implements the KernelBase interface.
Implements kernels for solving the equations of motion using an implicit Newmark's method....
ImplicitSmallStrainNewmark(NodeManager const &nodeManager, EdgeManager const &edgeManager, FaceManager const &faceManager, localIndex const targetRegionIndex, SUBREGION_TYPE const &elementSubRegion, FE_TYPE const &finiteElementSpace, CONSTITUTIVE_TYPE &inputConstitutiveType, arrayView1d< globalIndex const > const &inputDofNumber, globalIndex const rankOffset, CRSMatrixView< real64, globalIndex const > const inputMatrix, arrayView1d< real64 > const inputRhs, real64 const inputDt, real64 const (&inputGravityVector)[3], real64 const inputNewmarkGamma, real64 const inputNewmarkBeta, real64 const inputMassDamping, real64 const inputStiffnessDamping)
Constructor.
real64 const m_newmarkGamma
The Gamma parameter for Newmark's method.
arrayView2d< real64 const, nodes::TOTAL_DISPLACEMENT_USD > const m_vtilde
The rank-global velocity predictor.
static constexpr int numNodesPerElem
real64 const m_stiffnessDamping
The stiffness damping coefficient.
real64 const m_massDamping
The mass damping coefficient.
real64 const m_newmarkBeta
The Beta parameter for Newmark's method.
arrayView2d< real64 const, nodes::INCR_DISPLACEMENT_USD > const m_uhattilde
The rank-global incremental displacement predictor.
Implements kernels for solving quasi-static equilibrium.
arrayView2d< real64 const, nodes::INCR_DISPLACEMENT_USD > const m_uhat
The rank-global incremental displacement array.
arrayView2d< real64 const, nodes::TOTAL_DISPLACEMENT_USD > const m_disp
The rank-global displacement array.
static constexpr int numNodesPerElem
arrayView2d< real64 const > const m_density
The rank global density.
real64 const m_gravityVector[3]
The gravity vector.
arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const m_X
The array containing the nodal position array.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
real64 dRdU_InertiaMassDamping[maxNumRows][maxNumCols]
Stack storage for the Inertial damping contributions to the Jacobian.
GEOS_HOST_DEVICE StackVariables()
Constructor.
Kernel variables allocated on the stack.