20 #ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_MULTIPHASEPOROMECHANICS_HPP_
21 #define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_MULTIPHASEPOROMECHANICS_HPP_
30 template<
typename FLOW_SOLVER = CompositionalMultiphaseBase,
typename MECHANICS_SOLVER = Sol
idMechanicsLagrangianFEM >
44 using Base::updateBulkDensity;
63 if constexpr ( std::is_same_v< FLOW_SOLVER, CompositionalMultiphaseBase > )
65 return "MultiphasePoromechanics";
69 return FLOW_SOLVER::catalogName() +
"Poromechanics";
93 virtual void assembleElementBasedTerms(
real64 const time,
104 virtual void setMGRStrategy()
override
116 virtual string getFlowDofKey()
const override {
return CompositionalMultiphaseBase::viewKeyStruct::elemDofFieldString(); }
#define GEOS_ERROR(msg)
Raise a hard error and terminate the program.
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
~MultiphasePoromechanics() override
Destructor for the class.
static string catalogName()
name of the node manager in the object catalog
MultiphasePoromechanics(const string &name, dataRepository::Group *const parent)
main constructor for MultiphasePoromechanics Objects
virtual void updateBulkDensity(ElementSubRegionBase &subRegion) override
Helper function to recompute the bulk density.
CRSMatrix< real64, globalIndex > m_localMatrix
Local system matrix and rhs.
DofManager m_dofManager
Data structure to handle degrees of freedom.
ParallelVector m_solution
System solution vector.
ParallelVector m_rhs
System right-hand side vector.
LinearSolverParametersInput m_linearSolverParameters
Linear solver parameters.
real64 m_stabilizationMultiplier
Stabilization Multiplier.
stabilization::StabilizationType m_stabilizationType
Type of stabilization used.
string_array m_stabilizationRegionNames
Names of regions where stabilization applied.
std::tuple< SOLVERS *... > m_solvers
Pointers of the single-physics solvers.
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
string const & getName() const
Get group name.
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
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.
@ mgr
Multigrid reduction (Hypre only)
PreconditionerType preconditionerType
Preconditioner type.