A high-level interface for a PDESolver. More...
#include <dumux/common/pdesolver.hh>
A high-level interface for a PDESolver.
A PDESolver is constructed with an assembler and a linear solver and has a method solve that linearizes (if not already linear), assembles, solves and updates given an initial solution producing a new solution.
Assembler | A PDE linearized system assembler |
LinearSolver | A linear system solver |
Public Member Functions | |
PDESolver (std::shared_ptr< Assembler > assembler, std::shared_ptr< LinearSolver > linearSolver) | |
virtual | ~PDESolver ()=default |
virtual void | solve (SolutionVector &sol)=0 |
Solve the given PDE system (usually assemble + solve linear system + update) More... | |
virtual void | solve (SolutionVector &sol, TimeLoop &timeLoop) |
Solve the given PDE system with time step control. More... | |
Protected Member Functions | |
const Assembler & | assembler () const |
Access the assembler. More... | |
Assembler & | assembler () |
Access the assembler. More... | |
const LinearSolver & | linearSolver () const |
Access the linear solver. More... | |
LinearSolver & | linearSolver () |
Access the linear solver. More... | |
template<class FirstRow , class ... Args> | |
bool | checkSizesOfSubMatrices (const Dune::MultiTypeBlockMatrix< FirstRow, Args... > &matrix) const |
Helper function to assure the MultiTypeBlockMatrix's sub-blocks have the correct sizes. More... | |
|
inline |
|
virtualdefault |
|
inlineprotected |
Access the assembler.
|
inlineprotected |
Access the assembler.
|
inlineprotected |
Helper function to assure the MultiTypeBlockMatrix's sub-blocks have the correct sizes.
|
inlineprotected |
Access the linear solver.
|
inlineprotected |
Access the linear solver.
|
pure virtual |
Solve the given PDE system (usually assemble + solve linear system + update)
sol | a solution vector possbilty containing an initial solution |
Implemented in Dumux::LinearPDESolver< Assembler, LinearSolver >, Dumux::NewtonSolver< Assembler, LinearSolver, Reassembler, Comm >, and Dumux::NewtonSolver< Assembler, LinearSolver, DefaultPartialReassembler, Dune::CollectiveCommunication< Dune::MPIHelper::MPICommunicator > >.
|
inlinevirtual |
Solve the given PDE system with time step control.
sol | a solution vector possbilty containing an initial solution |
timeLoop | a reference to the current time loop |
Reimplemented in Dumux::NewtonSolver< Assembler, LinearSolver, Reassembler, Comm >, and Dumux::NewtonSolver< Assembler, LinearSolver, DefaultPartialReassembler, Dune::CollectiveCommunication< Dune::MPIHelper::MPICommunicator > >.