19 #ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_MULTIPHASEPOROMECHANICSCONFORMINGFRACTURES_HPP_
20 #define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_MULTIPHASEPOROMECHANICSCONFORMINGFRACTURES_HPP_
28 template<
typename FLOW_SOLVER = CompositionalMultiphaseBase >
61 if constexpr ( std::is_same_v< FLOW_SOLVER, CompositionalMultiphaseBase > )
63 return "MultiphasePoromechanicsConformingFractures";
67 return FLOW_SOLVER::catalogName() +
"PoromechanicsConformingFractures";
91 bool const setSparsity =
true )
override;
115 void assembleElementBasedContributions(
real64 const time_n,
122 virtual void assembleCouplingTerms(
real64 const time_n,
129 void assembleForceResidualDerivativeWrtPressure(
MeshLevel const & mesh,
135 void assembleFluidMassResidualDerivativeWrtDisplacement(
MeshLevel const & mesh,
157 void addTransmissibilityCouplingPattern(
DomainPartition const & domain,
177 void updateHydraulicApertureAndFracturePermeability(
DomainPartition & domain );
180 std::unique_ptr< CRSMatrix< real64, localIndex > > & getRefDerivativeFluxResidual_dAperture()
182 return m_derivativeFluxResidual_dAperture;
185 CRSMatrixView< real64, localIndex const > getDerivativeFluxResidual_dNormalJump()
187 return m_derivativeFluxResidual_dAperture->toViewConstSizes();
190 CRSMatrixView< real64 const, localIndex const > getDerivativeFluxResidual_dNormalJump()
const
192 return m_derivativeFluxResidual_dAperture->toViewConst();
195 std::unique_ptr< CRSMatrix< real64, localIndex > > m_derivativeFluxResidual_dAperture;
197 string const m_flowDofKey = CompositionalMultiphaseBase::viewKeyStruct::elemDofFieldString();
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...
Class facilitating the representation of a multi-level discretization of a MeshBody.
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.
std::tuple< SOLVERS *... > m_solvers
Pointers of the single-physics solvers.
virtual void updateState(DomainPartition &domain) override final
Recompute all dependent quantities from primary variables (including constitutive models)
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 final
function to assemble the linear system matrix and rhs
virtual void setupCoupling(DomainPartition const &domain, DofManager &dofManager) const override
Utility function to set the coupling between degrees of freedom.
virtual void setupSystem(DomainPartition &domain, DofManager &dofManager, CRSMatrix< real64, globalIndex > &localMatrix, ParallelVector &rhs, ParallelVector &solution, bool const setSparsity=true) override
Set up the linear system (DOF indices and sparsity patterns)
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
LvArray::SparsityPatternView< COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > SparsityPatternView
Alias for Sparsity pattern View.
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
LvArray::CRSMatrix< T, COL_INDEX, localIndex, LvArray::ChaiBuffer > CRSMatrix
Alias for CRS Matrix class.
std::vector< string > string_array
A 1-dimensional array of geos::string types.
LAInterface::ParallelVector ParallelVector
Alias for ParallelVector.
Structure to hold scoped key names.