24#ifndef DUMUX_COMMON_PDESOLVER_HH
25#define DUMUX_COMMON_PDESOLVER_HH
44template<
class Assembler,
class LinearSolver>
47 using SolutionVector =
typename Assembler::ResidualType;
48 using Scalar =
typename Assembler::Scalar;
64 virtual void solve(SolutionVector& sol) = 0;
84 {
return *assembler_; }
90 {
return *assembler_; }
96 {
return *linearSolver_; }
102 {
return *linearSolver_; }
105 std::shared_ptr<Assembler> assembler_;
106 std::shared_ptr<LinearSolver> linearSolver_;
Manages the handling of time dependent problems.
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
A high-level interface for a PDESolver.
Definition: common/pdesolver.hh:46
virtual ~PDESolver()=default
virtual void solve(SolutionVector &sol, TimeLoop &timeLoop)
Solve the given PDE system with time step control.
Definition: common/pdesolver.hh:73
LinearSolver & linearSolver()
Access the linear solver.
Definition: common/pdesolver.hh:101
const Assembler & assembler() const
Access the assembler.
Definition: common/pdesolver.hh:83
const LinearSolver & linearSolver() const
Access the linear solver.
Definition: common/pdesolver.hh:95
virtual void solve(SolutionVector &sol)=0
Solve the given PDE system (usually assemble + solve linear system + update)
Assembler & assembler()
Access the assembler.
Definition: common/pdesolver.hh:89
PDESolver(std::shared_ptr< Assembler > assembler, std::shared_ptr< LinearSolver > linearSolver)
Definition: common/pdesolver.hh:52
Manages the handling of time dependent problems.
Definition: timeloop.hh:65
Base class for linear solvers.
Definition: dumux/linear/solver.hh:37