21 #ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_SINGLEPHASERESERVOIRANDWELLS_HPP_
22 #define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_SINGLEPHASERESERVOIRANDWELLS_HPP_
32 template<
typename RESERVOIR_SOLVER = SinglePhaseBase >
62 if constexpr (std::is_same_v< RESERVOIR_SOLVER, SinglePhaseBase > )
64 return "SinglePhaseReservoir";
68 return RESERVOIR_SOLVER::catalogName() +
"Reservoir";
89 assembleHydrofracFluxTerms(
real64 const time_n,
98 template<
typename SUBREGION_TYPE >
99 void accumulationAssemblyLaunch(
DofManager const & dofManager,
100 SUBREGION_TYPE
const & subRegion,
105 void prepareStencilWeights( DomainPartition & domain )
const
107 void updateStencilWeights( DomainPartition & domain )
const
114 virtual void setMGRStrategy()
override
#define GEOS_ERROR(msg)
Raise a hard error and terminate the program.
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...
void updateStencilWeights(DomainPartition &domain) const
Update the stencil weights by adding the contribution of the hydraulic aperture after the aperture is...
void prepareStencilWeights(DomainPartition &domain) const
Prepare the stencil weights by removing the contribution of the hydraulic aperture before the apertur...
LinearSolverParametersInput m_linearSolverParameters
Linear solver parameters.
virtual void assembleHydrofracFluxTerms(real64 const time_n, real64 const dt, DomainPartition const &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs, CRSMatrixView< real64, localIndex const > const &dR_dAper)=0
assembles the flux terms for all cells for the hydrofracture case
void accumulationAssemblyLaunch(DofManager const &dofManager, SUBREGION_TYPE const &subRegion, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)
assembles the accumulation terms for all cells of a spcefici subRegion.
virtual void addCouplingSparsityPattern(DomainPartition const &domain, DofManager const &dofManager, SparsityPatternView< globalIndex > const &pattern) const override
virtual ~SinglePhaseReservoirAndWells() override
default destructor
SinglePhaseReservoirAndWells(const string &name, dataRepository::Group *const parent)
main constructor for ManagedGroup Objects
static string catalogName()
name of the node manager in the object catalog
virtual void initializePreSubGroups() override
Called by Initialize() prior to initializing sub-Groups.
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.
string getCatalogName() const override
string const & getName() const
Get group name.
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.
@ mgr
Multigrid reduction (Hypre only)
PreconditionerType preconditionerType
Preconditioner type.