20 #ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_SINGLEPHASEFVM_HPP_
21 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_SINGLEPHASEFVM_HPP_
37 template<
typename BASE = SinglePhaseBase >
45 using BASE::getLogLevel;
49 using BASE::forDiscretizationOnMeshTargets;
50 using BASE::m_cflFactor;
51 using BASE::m_maxStableDt;
53 using BASE::m_discretizationName;
54 using BASE::m_dofManager;
57 using BASE::m_solution;
58 using BASE::m_localMatrix;
59 using BASE::m_linearSolverParameters;
60 using BASE::m_nonlinearSolverParameters;
64 using BASE::m_numDofPerCell;
65 using BASE::m_isThermal;
102 if constexpr ( std::is_same_v< BASE, SinglePhaseBase > )
104 return "SinglePhaseFVM";
106 else if constexpr ( std::is_same_v< BASE, SinglePhaseProppantBase > )
108 return "SinglePhaseProppantFVM";
112 return BASE::catalogName();
138 bool const setSparsity =
true )
override;
158 real64 const scalingFactor,
181 string const & jumpDofKey )
override final;
215 void applyFaceDirichletBC(
real64 const time_n,
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...
SinglePhaseFVM & operator=(SinglePhaseFVM const &)=delete
deleted assignment operator
SinglePhaseFVM()=delete
deleted default constructor
virtual void initializePreSubGroups() override
Called by Initialize() prior to initializing sub-Groups.
SinglePhaseFVM(const string &name, dataRepository::Group *const parent)
main constructor for Group Objects
static string catalogName()
name of the node manager in the object catalog
SinglePhaseFVM & operator=(SinglePhaseFVM &&)=delete
deleted move operator
virtual void applyAquiferBC(real64 const time, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) const override
Apply aquifer boundary conditions to the system.
virtual ~SinglePhaseFVM() override=default
default destructor
SinglePhaseFVM(SinglePhaseFVM const &)=delete
deleted copy constructor
string getCatalogName() const override
SinglePhaseFVM(SinglePhaseFVM &&)=default
default move constructor
virtual void assembleFluxTerms(real64 const dt, DomainPartition const &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
assembles the flux terms for all cells
virtual void assembleStabilizedFluxTerms(real64 const dt, DomainPartition const &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
assembles the flux terms for all cells including jump stabilization
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)
virtual void applySystemSolution(DofManager const &dofManager, arrayView1d< real64 const > const &localSolution, real64 const scalingFactor, real64 const dt, DomainPartition &domain) override
Function to apply the solution vector to the state.
virtual real64 calculateResidualNorm(real64 const &time_n, real64 const &dt, DomainPartition const &domain, DofManager const &dofManager, arrayView1d< real64 const > const &localRhs) override
calculate the norm of the global system residual
virtual void assembleEDFMFluxTerms(real64 const time_n, real64 const dt, DomainPartition const &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs, string const &jumpDofKey) override final
assembles the flux terms for all cells for the poroelastic case
virtual void applyBoundaryConditions(real64 const time_n, real64 const dt, DomainPartition &domain, DofManager const &dofManager, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs) override
apply boundary condition to system
virtual void setupDofs(DomainPartition const &domain, DofManager &dofManager) const override
Populate degree-of-freedom manager with fields relevant to this solver.
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) override final
assembles the flux terms for all cells for the hydrofracture case
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
double real64
64-bit floating point type.
LvArray::CRSMatrix< T, COL_INDEX, localIndex, LvArray::ChaiBuffer > CRSMatrix
Alias for CRS Matrix class.
LAInterface::ParallelVector ParallelVector
Alias for ParallelVector.