16 #ifndef GEOS_PHYSICSSOLVERS_SIMPLEPDE_LAPLACE_BASE_HPP
17 #define GEOS_PHYSICSSOLVERS_SIMPLEPDE_LAPLACE_BASE_HPP
38 Group *
const parent );
76 real64 const scalingFactor,
116 static constexpr
char const * timeIntegrationOption() {
return "timeIntegrationOption"; }
117 static constexpr
char const * fieldVarName() {
return "fieldName"; }
142 "ImplicitTransient" );
#define GEOS_UNUSED_PARAM(X)
Mark an unused argument and silence compiler warnings.
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...
string m_fieldName
User-defined name of the physical quantity we wish to solve for (such as "Temperature",...
TimeIntegrationOption m_timeIntegrationOption
Choice of transient treatment (SteadyState, ImplicitTransient)
LaplaceBaseH1(const string &name, Group *const parent)
The constructor needs a user-defined "name" and a parent Group (to place this instance in the tree st...
virtual void setupDofs(DomainPartition const &domain, DofManager &dofManager) const override
Populate degree-of-freedom manager with fields relevant to this solver.
TimeIntegrationOption
Choice of transient treatment options (steady or backward Euler scheme):
LaplaceBaseH1()=delete
The default nullary constructor is disabled to avoid compiler auto-generation:
virtual ~LaplaceBaseH1() override
Destructor.
virtual void registerDataOnMesh(Group &meshBodies) override final
This method ties properties with their supporting mesh.
virtual void implicitStepComplete(real64 const &time, real64 const &dt, DomainPartition &domain) override
perform cleanup for implicit timestep
virtual void updateState(DomainPartition &domain) override final
Recompute all dependent quantities from primary variables (including constitutive models)
virtual real64 solverStep(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain) override
entry function to perform a solver step
virtual void implicitStepSetup(real64 const &time_n, real64 const &dt, DomainPartition &domain) override
function to perform setup for implicit timestep
virtual void applyBoundaryConditions(real64 const time, 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 applyDirichletBCImplicit(real64 const time, DofManager const &dofManager, DomainPartition &domain, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)
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.
Base class for all physics solvers.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
ENUM_STRINGS(LinearSolverParameters::SolverType, "direct", "cg", "gmres", "fgmres", "bicgstab", "preconditioner")
Declare strings associated with enumeration values.
double real64
64-bit floating point type.
std::int32_t integer
Signed integer type.
Structure to hold scoped key names.