My Project
|
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.