GEOS
|
Implements kernels for solving the Damage(or phase-field) equation in a phase-field pressurized fracture problem. More...
#include <PhaseFieldPressurizedDamageFEMKernels.hpp>
Classes | |
class | StackVariables |
Public Types | |
using | Base = PhaseFieldDamageKernel< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE > |
An alias for the base class. | |
using | LocalDissipation = PhaseFieldDamageKernelLocalDissipation |
![]() | |
using | Base = finiteElement::ImplicitKernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, 1, 1 > |
An alias for the base class. | |
using | LocalDissipation = PhaseFieldDamageKernelLocalDissipation |
![]() | |
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 |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
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 |
![]() | |
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 |
![]() | |
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 | |
![]() | |
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 | |
![]() | |
template<typename POLICY , typename KERNEL_TYPE > | |
static real64 | kernelLaunch (localIndex const numElems, KERNEL_TYPE const &kernelComponent) |
Kernel Launcher. More... | |
![]() | |
traits::ViewTypeConst< typename SUBREGION_TYPE::NodeMapType::base_type > const | m_elemsToNodes |
The element to nodes map. | |
FE_TYPE const | m_finiteElementSpace |
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.
SUBREGION_TYPE | The type of subregion that the kernel will act on. |
CONSTITUTIVE_TYPE | The type of constitutive model present in the subregion. |
NUM_TEST_SUPPORT_POINTS_PER_ELEM | The number of test space support points per element. |
NUM_TRIAL_SUPPORT_POINTS_PER_ELEM | The number of trial space support points per element. |
NUM_DOF_PER_TEST_SP | The number of DOF per test support point. |
NUM_DOF_PER_TRIAL_SP | The number of DOF per trial support point. |
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.
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.
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.
|
inline |
Constructor.
fieldName | The name of the primary field (i.e. Temperature, Pressure, etc.) |
Definition at line 84 of file PhaseFieldPressurizedDamageFEMKernels.hpp.
|
inline |
Add pressure effects
Definition at line 161 of file PhaseFieldPressurizedDamageFEMKernels.hpp.
|
inline |
Copy global values from primary field to a local stack array.
Definition at line 147 of file PhaseFieldPressurizedDamageFEMKernels.hpp.
|
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.