GEOSX
|
Implements kernels for solving the equations of motion using the explicit Newmark method under the finite strain assumption. More...
#include <SolidMechanicsFiniteStrainExplicitNewmarkKernel.hpp>
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 |
Implements kernels for solving the equations of motion using the explicit Newmark method under the finite strain assumption.
Constructor. 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. |
nodeManager | Reference to the NodeManager object. |
edgeManager | Reference to the EdgeManager object. |
faceManager | Reference to the FaceManager object. |
targetRegionIndex | Index of the region the subregion belongs to. |
dt | The time interval for the step. |
elementListName | The name of the entry that holds the list of elements to be processed during this kernel launch. |
Finite strain implementation.
Definition at line 50 of file SolidMechanicsFiniteStrainExplicitNewmarkKernel.hpp.
|
inline |
Constructor.
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. |
nodeManager | Reference to the NodeManager object. |
edgeManager | Reference to the EdgeManager object. |
faceManager | Reference to the FaceManager object. |
targetRegionIndex | Index of the region the subregion belongs to. |
dt | The time interval for the step. |
elementListName | The 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.
|
inline |
Performs a state update at a quadrature point.
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. |
q | The quadrature point index. |
stack | The StackVariable object that hold the stack variables. |
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.
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.
|
inline |
Performs the setup 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 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.