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 >
63 if constexpr ( std::is_same_v< FLOW_SOLVER, CompositionalMultiphaseBase > )
65 return "MultiphasePoromechanics";
69 return FLOW_SOLVER::catalogName() +
"Poromechanics";
97 void assembleElementBasedTerms(
real64 const time,
120 template<
typename CONSTITUTIVE_BASE,
121 typename KERNEL_WRAPPER,
122 typename ... PARAMS >
126 string const & materialNamesString,
130 PARAMS && ... params );
135 template<
typename FLOW_SOLVER,
typename MECHANICS_SOLVER >
136 template<
typename CONSTITUTIVE_BASE,
137 typename KERNEL_WRAPPER,
138 typename ... PARAMS >
142 string const & materialNamesString,
146 PARAMS && ... params )
152 string const dofKey = dofManager.
getKey( fields::solidMechanics::totalDisplacement::key() );
157 KERNEL_WRAPPER kernelWrapper( dofNumber,
163 std::forward< PARAMS >( params )... );
165 return finiteElement::
166 regionBasedKernelApplication< parallelDevicePolicy< >,
170 this->solidMechanicsSolver()->getDiscretizationName(),
#define GEOS_MARK_FUNCTION
Mark function with both Caliper and NVTX if enabled.
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns,...
globalIndex rankOffset(string const &fieldName) const
string const & getKey(string const &fieldName) const
Return the key used to record the field in the DofManager.
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Class facilitating the representation of a multi-level discretization of a MeshBody.
NodeManager const & getNodeManager() const
Get the node manager.
string getCatalogName() const override
~MultiphasePoromechanics() override
Destructor for the class.
static string catalogName()
name of the node manager in the object catalog
virtual void initializePostInitialConditionsPreSubGroups() override
Called by InitializePostInitialConditions() prior to initializing sub-Groups.
MultiphasePoromechanics(const string &name, dataRepository::Group *const parent)
main constructor for MultiphasePoromechanics Objects
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data.
CRSMatrix< real64, globalIndex > m_localMatrix
Local system matrix and rhs.
DofManager m_dofManager
Data structure to handle degrees of freedom.
R1Tensor const gravityVector() const
return the value of the gravity vector specified in PhysicsSolverManager
ParallelVector m_solution
System solution vector.
ParallelVector m_rhs
System right-hand side vector.
array1d< string > m_stabilizationRegionNames
Names of regions where stabilization applied.
real64 m_stabilizationMultiplier
Stabilization Multiplier.
stabilization::StabilizationType m_stabilizationType
Type of stabilization used.
std::tuple< SOLVERS *... > m_solvers
Pointers of the single-physics solvers.
GEOS_DECLTYPE_AUTO_RETURN getReference(LOOKUP_TYPE const &lookup) const
Look up a wrapper and get reference to wrapped object.
integer getLogLevel() const
virtual void postInputInitialization() override
virtual void setupCoupling(DomainPartition const &domain, DofManager &dofManager) const override
Utility function to set the coupling between degrees of freedom.
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.
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
array1d< globalIndex > globalIndex_array
A 1-dimensional array of geos::globalIndex types.
double real64
64-bit floating point type.