|
opm-simulators
|
A solver class that encapsulates all needed objects for a linear solver (operator, scalar product, iterative solver and preconditioner) and sets them up based on runtime parameters, using the PreconditionerFactory for setting up preconditioners. More...
#include <FlexibleSolver.hpp>
Public Types | |
| using | VectorType = typename Operator::domain_type |
| using | AbstractPrecondType = Dune::PreconditionerWithUpdate<VectorType, VectorType> |
| Base class type of the contained preconditioner. | |
Public Member Functions | |
| FlexibleSolver (Operator &op, const Opm::PropertyTree &prm, const std::function< VectorType()> &weightsCalculator, std::size_t pressureIndex) | |
| Create a sequential solver. | |
| template<class Comm> | |
| FlexibleSolver (Operator &op, const Comm &comm, const Opm::PropertyTree &prm, const std::function< VectorType()> &weightsCalculator, std::size_t pressureIndex) | |
| Create a parallel solver (if Comm is e.g. OwnerOverlapCommunication). | |
| virtual void | apply (VectorType &x, VectorType &rhs, Dune::InverseOperatorResult &res) override |
| virtual void | apply (VectorType &x, VectorType &rhs, double reduction, Dune::InverseOperatorResult &res) override |
| AbstractPrecondType & | preconditioner () |
| Access the contained preconditioner. | |
| virtual Dune::SolverCategory::Category | category () const override |
A solver class that encapsulates all needed objects for a linear solver (operator, scalar product, iterative solver and preconditioner) and sets them up based on runtime parameters, using the PreconditionerFactory for setting up preconditioners.