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 
  110   void updateMass( CellElementSubRegion & subRegion )
 const 
  117   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...
 
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)
assembles the flux terms for all cells for the hydrofracture case
 
LinearSolverParametersInput m_linearSolverParameters
Linear solver parameters.
 
void updateMass(ElementSubRegionBase &subRegion) const
Function to update fluid mass.
 
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::SparsityPatternView< COL_INDEX, INDEX_TYPE const, LvArray::ChaiBuffer > SparsityPatternView
Alias for Sparsity pattern 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.