GEOS
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
geos::PhaseFieldPressurizedDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE > Class Template Reference

Implements kernels for solving the Damage(or phase-field) equation in a phase-field pressurized fracture problem. More...

#include <PhaseFieldPressurizedDamageFEMKernels.hpp>

Inheritance diagram for geos::PhaseFieldPressurizedDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >:
Inheritance graph
[legend]

Classes

class  StackVariables
 

Public Types

using Base = PhaseFieldDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
 An alias for the base class.
 
using LocalDissipation = PhaseFieldDamageKernelLocalDissipation
 
- Public Types inherited from geos::PhaseFieldDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
using Base = finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 1, 1 >
 An alias for the base class.
 
using LocalDissipation = PhaseFieldDamageKernelLocalDissipation
 
- Public Types inherited from geos::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 1, 1 >
using Base = KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP >
 Alias for the base class. (i.e. geos::finiteElement::KernelBase)
 

Public Member Functions

 PhaseFieldPressurizedDamageKernel (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, string const fieldName, LocalDissipation localDissipationOption)
 Constructor. More...
 
GEOS_HOST_DEVICE GEOS_FORCE_INLINE void setup (localIndex const k, StackVariables &stack) const
 Copy global values from primary field to a local stack array. More...
 
GEOS_HOST_DEVICE GEOS_FORCE_INLINE void quadraturePointKernel (localIndex const k, localIndex const q, StackVariables &stack) const
 
- Public Member Functions inherited from geos::PhaseFieldDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
 PhaseFieldDamageKernel (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, string const fieldName, LocalDissipation localDissipationOption)
 Constructor. More...
 
GEOS_HOST_DEVICE void setup (localIndex const k, StackVariables &stack) const
 Copy global values from primary field to a local stack array. More...
 
GEOS_HOST_DEVICE void quadraturePointKernel (localIndex const k, localIndex const q, StackVariables &stack) const
 
GEOS_HOST_DEVICE real64 complete (localIndex const k, StackVariables &stack) const
 Performs the complete phase for the kernel. More...
 
- Public Member Functions inherited from geos::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 1, 1 >
 ImplicitKernelBase (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)
 Constructor. More...
 
GEOS_HOST_DEVICE void setup (localIndex const k, StackVariables &stack) const
 Performs the setup phase for the kernel. More...
 
- Public Member Functions inherited from geos::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP >
 KernelBase (SUBREGION_TYPE const &elementSubRegion, FE_TYPE const &finiteElementSpace, CONSTITUTIVE_TYPE &inputConstitutiveType)
 Constructor. More...
 
GEOS_HOST_DEVICE void setup (localIndex const k, StackVariables &stack) const
 Performs the setup phase for the kernel. More...
 
GEOS_HOST_DEVICE GEOS_FORCE_INLINE void quadraturePointKernel (localIndex const k, localIndex const q, StackVariables &stack) const
 Performs a state update at a quadrature point. More...
 
GEOS_HOST_DEVICE real64 complete (localIndex const k, StackVariables &stack) const
 Performs the complete phase for the kernel. More...
 

Static Public Attributes

static constexpr int numNodesPerElem = Base::maxNumTestSupportPointsPerElem
 
- Static Public Attributes inherited from geos::PhaseFieldDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
static constexpr int numNodesPerElem = Base::maxNumTestSupportPointsPerElem
 
- Static Public Attributes inherited from geos::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 1, 1 >
static constexpr int maxNumTestSupportPointsPerElem
 
static constexpr int maxNumTrialSupportPointsPerElem
 
static constexpr int numDofPerTestSupportPoint
 
static constexpr int numDofPerTrialSupportPoint
 
- Static Public Attributes inherited from geos::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP >
static constexpr int maxNumTestSupportPointsPerElem = FE_TYPE::maxSupportPoints
 
static constexpr int maxNumTrialSupportPointsPerElem = FE_TYPE::maxSupportPoints
 
static constexpr int numDofPerTestSupportPoint = NUM_DOF_PER_TEST_SP
 
static constexpr int numDofPerTrialSupportPoint = NUM_DOF_PER_TRIAL_SP
 
static constexpr int numQuadraturePointsPerElem = FE_TYPE::numQuadraturePoints
 Compile time value for the number of quadrature points per element.
 

Protected Attributes

arrayView2d< real64 const, nodes::TOTAL_DISPLACEMENT_USD > const m_disp
 The rank-global displacement array.
 
arrayView1d< real64 const > const m_fluidPressure
 
arrayView2d< real64 const > const m_fluidPressureGradient
 
- Protected Attributes inherited from geos::PhaseFieldDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >
arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const m_X
 The array containing the nodal position array.
 
arrayView1d< real64 const > const m_nodalDamage
 The global primary field array.
 
arrayView2d< real64 const > const m_quadDamage
 The array containing the damage on each quadrature point of all elements.
 
arrayView2d< real64 const > const m_quadExtDrivingForce
 The array containing the external driving force on each quadrature point of all elements.
 
PhaseFieldDamageKernelLocalDissipation m_localDissipationOption
 
- Protected Attributes inherited from geos::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 1, 1 >
arrayView1d< globalIndex const > const m_dofNumber
 The global degree of freedom number.
 
globalIndex const m_dofRankOffset
 The global rank offset.
 
CRSMatrixView< real64, globalIndex const > const m_matrix
 The global Jacobian matrix.
 
arrayView1d< real64 > const m_rhs
 The global residaul vector.
 
FE_TYPE::template MeshData< SUBREGION_TYPE > m_meshData
 Data structure containing mesh data used to setup the finite element.
 
real64 const m_dt
 time increment
 
- Protected Attributes inherited from geos::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP >
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
 

Additional Inherited Members

- Static Public Member Functions inherited from geos::finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, NUM_DOF_PER_TEST_SP, NUM_DOF_PER_TRIAL_SP >
template<typename POLICY , typename KERNEL_TYPE >
static real64 kernelLaunch (localIndex const numElems, KERNEL_TYPE const &kernelComponent)
 Kernel Launcher. More...
 
- Public Attributes inherited from geos::finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 1, 1 >
traits::ViewTypeConst< typename SUBREGION_TYPE::NodeMapType::base_type > const m_elemsToNodes
 The element to nodes map.
 
FE_TYPE const m_finiteElementSpace
 

Detailed Description

template<typename SUBREGION_TYPE, typename CONSTITUTIVE_TYPE, typename FE_TYPE>
class geos::PhaseFieldPressurizedDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >

Implements kernels for solving the Damage(or phase-field) equation in a phase-field pressurized fracture problem.

Define the base interface for implicit finite element kernels. Define the base interface for finite element kernels.

Template Parameters
SUBREGION_TYPEThe type of subregion that the kernel will act on.
CONSTITUTIVE_TYPEThe type of constitutive model present in the subregion.
NUM_TEST_SUPPORT_POINTS_PER_ELEMThe number of test space support points per element.
NUM_TRIAL_SUPPORT_POINTS_PER_ELEMThe number of trial space support points per element.
NUM_DOF_PER_TEST_SPThe number of DOF per test support point.
NUM_DOF_PER_TRIAL_SPThe number of DOF per trial support point.

General KernelBase Description

KernelBase defines an interface for implementing finite element kernels that will be callable by the family of kernel launch functions. Specific physics kernels may or may not derive from KernelBase, but must follow the same interface in order to be callable from the generic launching functions.

The template parameters of KernelBase should be duplicated as part of the interface, EXCEPT for NUM_DOF_PER_TEST_SP and NUM_DOF_PER_TRIAL_SP. These values should be set internally by the physics solver since each physics discretization will have a constant intrinsic value for these quantities. For example, when solving or the heat equation with scalar temperature as the primary variable at the support point, these will have a value of 1. In contrast, when solving a solid mechanics problem, with vector displacement as the primary variable at the support point, these will have a value of 3. Note that the interface provided by geos::finiteElement::RegionBasedKernelApplication will construct a kernel assuming only the first 4 template arguments.

ImplicitKernelBase Description

Provides a common base for kernels that require the assembly of a system of equations. The types required to assemble the system, such as DOF information, the Matrix and Vector object, etc., are declared and set here.

PhaseFieldPressurizedDamageKernel Description

Implements the KernelBase interface functions required for solving the the Damage(or phase-field) equation in a phase-field pressurized fracture problem using one of the "finite element kernel application" functions such as geos::finiteElement::RegionBasedKernelApplication.

Definition at line 45 of file PhaseFieldPressurizedDamageFEMKernels.hpp.

Constructor & Destructor Documentation

◆ PhaseFieldPressurizedDamageKernel()

template<typename SUBREGION_TYPE , typename CONSTITUTIVE_TYPE , typename FE_TYPE >
geos::PhaseFieldPressurizedDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >::PhaseFieldPressurizedDamageKernel ( 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,
string const  fieldName,
LocalDissipation  localDissipationOption 
)
inline

Constructor.

Parameters
fieldNameThe name of the primary field (i.e. Temperature, Pressure, etc.)

Definition at line 84 of file PhaseFieldPressurizedDamageFEMKernels.hpp.

Member Function Documentation

◆ quadraturePointKernel()

template<typename SUBREGION_TYPE , typename CONSTITUTIVE_TYPE , typename FE_TYPE >
GEOS_HOST_DEVICE GEOS_FORCE_INLINE void geos::PhaseFieldPressurizedDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >::quadraturePointKernel ( localIndex const  k,
localIndex const  q,
StackVariables stack 
) const
inline

Add pressure effects

Definition at line 161 of file PhaseFieldPressurizedDamageFEMKernels.hpp.

◆ setup()

template<typename SUBREGION_TYPE , typename CONSTITUTIVE_TYPE , typename FE_TYPE >
GEOS_HOST_DEVICE GEOS_FORCE_INLINE void geos::PhaseFieldPressurizedDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >::setup ( localIndex const  k,
StackVariables stack 
) const
inline

Copy global values from primary field to a local stack array.

Definition at line 147 of file PhaseFieldPressurizedDamageFEMKernels.hpp.

Member Data Documentation

◆ numNodesPerElem

template<typename SUBREGION_TYPE , typename CONSTITUTIVE_TYPE , typename FE_TYPE >
constexpr int geos::PhaseFieldPressurizedDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE >::numNodesPerElem = Base::maxNumTestSupportPointsPerElem
staticconstexpr

Maximum number of nodes per element, which is equal to the maxNumTestSupportPointPerElem and maxNumTrialSupportPointPerElem by definition. When the FE_TYPE is not a Virtual Element, this will be the actual number of nodes per element.

Definition at line 76 of file PhaseFieldPressurizedDamageFEMKernels.hpp.


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