21 #ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_COMPOSITIONALMULTIPHASERESERVOIRANDWELLS_HPP_
22 #define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_COMPOSITIONALMULTIPHASERESERVOIRANDWELLS_HPP_
32 template<
typename RESERVOIR_SOLVER = CompositionalMultiphaseBase >
34 CompositionalMultiphaseWell >
63 if constexpr (std::is_same_v< RESERVOIR_SOLVER, CompositionalMultiphaseBase > )
65 return "CompositionalMultiphaseReservoir";
69 return RESERVOIR_SOLVER::catalogName() +
"Reservoir";
88 integer isThermal() {
return flowSolver()->isThermal(); }
89 integer useSimpleAccumulation()
const {
return flowSolver()->useSimpleAccumulation(); }
90 integer useTotalMassEquation()
const {
return flowSolver()->useTotalMassEquation(); }
104 void setMGRStrategy();
virtual void assembleCouplingTerms(real64 const time_n, real64 const dt, DomainPartition const &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
Utility function to compute coupling terms.
virtual void initializePreSubGroups() override
Called by Initialize() prior to initializing sub-Groups.
virtual void initializePostInitialConditionsPreSubGroups() override
Called by InitializePostInitialConditions() prior to initializing sub-Groups.
static string catalogName()
name of the node manager in the object catalog
CompositionalMultiphaseReservoirAndWells(const string &name, dataRepository::Group *const parent)
main constructor for ManagedGroup Objects
virtual void addCouplingSparsityPattern(DomainPartition const &domain, DofManager const &dofManager, SparsityPatternView< globalIndex > const &pattern) const override
virtual ~CompositionalMultiphaseReservoirAndWells() override
default destructor
string getCatalogName() const override
std::tuple< SOLVERS *... > m_solvers
Pointers of the single-physics solvers.
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...
LinearSolverParametersInput m_linearSolverParameters
Linear solver parameters.
integer getLogLevel() const
integer numFluidComponents() const
Getter for the number of fluid components (species)
integer numFluidPhases() const
Getter for the number of fluid phases.
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.
std::int32_t integer
Signed integer type.