20 #ifndef GEOS_PHYSICSSOLVERS_SIMPLEPDE_PHASEFIELDDAMAGE_HPP_
21 #define GEOS_PHYSICSSOLVERS_SIMPLEPDE_PHASEFIELDDAMAGE_HPP_
29 namespace dataRepository
33 class DomainPartition;
42 static string catalogName()
44 return "PhaseFieldDamageFEM";
51 static string coupledSolverAttributePrefix() {
return "damage"; }
96 real64 const scalingFactor,
116 void applyDirichletBCImplicit(
real64 const time,
122 void applyIrreversibilityConstraint(
DofManager const & dofManager,
138 static constexpr
char const * irreversibilityFlagString() {
return "irreversibilityFlag"; }
139 static constexpr
char const * damageUpperBoundString() {
return "damageUpperBound"; }
140 static constexpr
char const * viscousRegularizationCoeffString() {
return "viscousRegularizationCoeff"; }
141 static constexpr
char const * fracturePressureTermFlagString() {
return "fracturePressureTermFlag"; }
142 static constexpr
char const * solidModelNamesString() {
return "solidMaterialNames"; }
145 } PhaseFieldDamageFEMViewKeys;
154 real64 m_damageUpperBound;
155 integer m_fracturePressureTermFlag;
158 real64 m_viscousRegularizationCoeff;
165 "ExplicitTransient" );
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns,...
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
string getCatalogName() const override
virtual void setConstitutiveNamesCallSuper(ElementSubRegionBase &subRegion) const override
This function sets constitutive name fields on an ElementSubRegionBase, and calls the base function i...
@ ExplicitTransient
not implemented
virtual void registerDataOnMesh(Group &meshBodies) override final
Register wrappers that contain data on the mesh objects.
virtual void saveSequentialIterationState(DomainPartition &domain) override
Save the state of the solver for sequential iteration.
Base class for all physics solvers.
virtual void resetStateToBeginningOfStep(DomainPartition &) override
reset state of physics back to the beginning of the step.
virtual void updateState(DomainPartition &domain) override final
Recompute all dependent quantities from primary variables (including constitutive models)
virtual void applyBoundaryConditions(real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
apply boundary condition to system
virtual void applySystemSolution(DofManager const &dofManager, arrayView1d< real64 const > const &localSolution, real64 const scalingFactor, real64 const dt, DomainPartition &domain) override
Function to apply the solution vector to the state.
virtual real64 solverStep(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) override
entry function to perform a solver step
virtual void setupDofs(DomainPartition const &domain, DofManager &dofManager) const override
Populate degree-of-freedom manager with fields relevant to this solver.
virtual void assembleSystem(real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
function to assemble the linear system matrix and rhs
virtual void implicitStepComplete(real64 const &time, real64 const &dt, DomainPartition &domain) override
perform cleanup for implicit timestep
virtual real64 explicitStep(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) override
Entry function for an explicit time integration step.
virtual real64 calculateResidualNorm(real64 const &time_n, real64 const &dt, DomainPartition const &domain, DofManager const &dofManager, arrayView1d< real64 const > const &localRhs) override
calculate the norm of the global system residual
virtual void implicitStepSetup(real64 const &, real64 const &, DomainPartition &) override
function to perform setup for implicit timestep
Group::wrapperMap::KeyIndex ViewKey
Type alias for KeyIndexT type used for wrapper lookups.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
double real64
64-bit floating point type.
LvArray::CRSMatrixView< T, COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
int integer
Signed integer type.
ENUM_STRINGS(LinearSolverParameters::SolverType, "direct", "cg", "gmres", "fgmres", "bicgstab", "richardson", "preconditioner")
Declare strings associated with enumeration values.
Structure to hold scoped key names.