GEOSX
Classes | Public Types | Public Member Functions | List of all members
geosx::SolidMechanicsLagrangianFEMKernels::ExplicitFiniteStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE > Class Template Reference

Implements kernels for solving the equations of motion using the explicit Newmark method under the finite strain assumption. More...

#include <SolidMechanicsFiniteStrainExplicitNewmarkKernel.hpp>

Inheritance diagram for geosx::SolidMechanicsLagrangianFEMKernels::ExplicitFiniteStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >:
Inheritance graph
[legend]

Classes

struct  StackVariables
 Kernel variables allocated on the stack. More...
 

Public Types

using Base = ExplicitSmallStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
 Alias for the base class;.
 
- Public Types inherited from geosx::SolidMechanicsLagrangianFEMKernels::ExplicitSmallStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
using Base = finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 3, 3 >
 Alias for the base class;.
 

Public Member Functions

 ExplicitFiniteStrain (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. 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...
 
- Public Member Functions inherited from geosx::SolidMechanicsLagrangianFEMKernels::ExplicitSmallStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
 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. 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 const &stack) const
 Performs the complete phase for the kernel. More...
 
- Public Member Functions inherited from geosx::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 3, 3 >
 KernelBase (SUBREGION_TYPE const &elementSubRegion, FE_TYPE const &finiteElementSpace, CONSTITUTIVE_TYPE &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...
 

Additional Inherited Members

- Static Public Member Functions inherited from geosx::SolidMechanicsLagrangianFEMKernels::ExplicitSmallStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
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, 3, 3 >
static real64 kernelLaunch (localIndex const numElems, KERNEL_TYPE const &kernelComponent)
 Kernel Launcher. More...
 
- Static Public Attributes inherited from geosx::SolidMechanicsLagrangianFEMKernels::ExplicitSmallStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
static constexpr int numNodesPerElem = Base::numTestSupportPointsPerElem
 
- Static Public Attributes inherited from geosx::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 3, 3 >
static constexpr int numTestSupportPointsPerElem
 
static constexpr int numTrialSupportPointsPerElem
 
static constexpr int numDofPerTestSupportPoint
 
static constexpr int numDofPerTrialSupportPoint
 
static constexpr int numQuadraturePointsPerElem
 Compile time value for the number of quadrature points per element.
 
- Protected Attributes inherited from geosx::SolidMechanicsLagrangianFEMKernels::ExplicitSmallStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const m_X
 The array containing the nodal position array.
 
arrayView2d< real64 const, nodes::TOTAL_DISPLACEMENT_USD > const m_u
 The array containing the nodal displacement array.
 
arrayView2d< real64 const, nodes::VELOCITY_USD > const m_vel
 The array containing the nodal velocity array.
 
arrayView2d< real64, nodes::ACCELERATION_USD > const m_acc
 
real64 const m_dt
 The time increment for this time integration step.
 
SortedArrayView< localIndex const > const m_elementList
 The list of elements to process for the kernel launch.
 
- Protected Attributes inherited from geosx::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 3, 3 >
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
 

Detailed Description

template<typename SUBREGION_TYPE, typename CONSTITUTIVE_TYPE, typename FE_TYPE>
class geosx::SolidMechanicsLagrangianFEMKernels::ExplicitFiniteStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >

Implements kernels for solving the equations of motion using the explicit Newmark method under the finite strain assumption.

Constructor. Constructor.

Parameters
elementSubRegionReference to the SUBREGION_TYPE(class template parameter) object.
inputConstitutiveTypeThe constitutive object.
finiteElementSpacePlaceholder for the finite element space object, which currently doesn't do much.
nodeManagerReference to the NodeManager object.
edgeManagerReference to the EdgeManager object.
faceManagerReference to the FaceManager object.
targetRegionIndexIndex of the region the subregion belongs to.
dtThe time interval for the step.
elementListNameThe name of the entry that holds the list of elements to be processed during this kernel launch.

Explicit Small Strain Description

Finite strain implementation.

Definition at line 50 of file SolidMechanicsFiniteStrainExplicitNewmarkKernel.hpp.

Constructor & Destructor Documentation

◆ ExplicitFiniteStrain()

template<typename SUBREGION_TYPE , typename CONSTITUTIVE_TYPE , typename FE_TYPE >
geosx::SolidMechanicsLagrangianFEMKernels::ExplicitFiniteStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >::ExplicitFiniteStrain ( 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 
)
inline

Constructor.

Constructor.

Parameters
elementSubRegionReference to the SUBREGION_TYPE(class template parameter) object.
inputConstitutiveTypeThe constitutive object.
finiteElementSpacePlaceholder for the finite element space object, which currently doesn't do much.
nodeManagerReference to the NodeManager object.
edgeManagerReference to the EdgeManager object.
faceManagerReference to the FaceManager object.
targetRegionIndexIndex of the region the subregion belongs to.
dtThe time interval for the step.
elementListNameThe name of the entry that holds the list of elements to be processed during this kernel launch.

Definition at line 79 of file SolidMechanicsFiniteStrainExplicitNewmarkKernel.hpp.

Member Function Documentation

◆ quadraturePointKernel()

template<typename SUBREGION_TYPE , typename CONSTITUTIVE_TYPE , typename FE_TYPE >
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE void geosx::SolidMechanicsLagrangianFEMKernels::ExplicitFiniteStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >::quadraturePointKernel ( localIndex const  k,
localIndex const  q,
StackVariables stack 
) const
inline

Performs a state update at a quadrature point.

Template Parameters
STACK_VARIABLE_TYPEThe type of StackVariable that holds the stack variables. This is most likely a defined in a type that derives from KernelBase.
Parameters
kThe element index.
qThe quadrature point index.
stackThe StackVariable object that hold the stack variables.

KernelBase::quadraturePointKernel() Description

The operations found here are the mapping from the support points to the quadrature point, calculation of gradients, etc. From this data the state of the constitutive model is updated if required by the physics package.

ExplicitSmallStrain Description

Calculates the shape function derivatives, and the strain tensor. Then calls the constitutive update, and also performs the integration of the stress divergence, rather than using the dedicated component function to allow for some variable reuse.

Definition at line 153 of file SolidMechanicsFiniteStrainExplicitNewmarkKernel.hpp.

◆ setup()

template<typename SUBREGION_TYPE , typename CONSTITUTIVE_TYPE , typename FE_TYPE >
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE void geosx::SolidMechanicsLagrangianFEMKernels::ExplicitFiniteStrain< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >::setup ( localIndex const  k,
StackVariables stack 
) const
inline

Performs the setup phase for the kernel.

Template Parameters
STACK_VARIABLE_TYPEThe type of StackVariable that holds the stack variables. This is most likely a defined in a type that derives from KernelBase.
Parameters
kThe element index.
stackThe StackVariable object that hold the stack variables.

KernelBase::setup() Description

The operations typically found in setup are thing such as the collection of global data into local stack storage.

Copies the primary variable, and position into the local stack array.

Definition at line 131 of file SolidMechanicsFiniteStrainExplicitNewmarkKernel.hpp.


The documentation for this class was generated from the following file: