19 #ifndef OPM_PRECONDITIONER2INVERSEOPERATOR_HEADER_INCLUDED 20 #define OPM_PRECONDITIONER2INVERSEOPERATOR_HEADER_INCLUDED 22 #include <dune/common/shared_ptr.hh> 23 #include <dune/istl/preconditioner.hh> 24 #include <dune/istl/solver.hh> 42 using typename InverseOperator<X, X>::domain_type;
43 using typename InverseOperator<X, X>::range_type;
44 using typename InverseOperator<X, X>::field_type;
45 using typename InverseOperator<X, X>::real_type;
46 using typename InverseOperator<X, X>::scalar_real_type;
48 using PreconditionerType = Preconditioner<X, X>;
51 : prec_(stackobject_to_shared_ptr(prec))
56 : prec_(std::move(prec))
60 void apply(X& x, X& b, InverseOperatorResult& res)
override 77 void apply(X& x, X& b, [[maybe_unused]]
double reduction, InverseOperatorResult& res)
override 82 SolverCategory::Category category()
const override 84 return SolverCategory::category(*prec_);
90 std::shared_ptr<PreconditionerType> prec_;
95 #endif // OPM_PRECONDITIONER2INVERSEOPERATOR_HEADER_INCLUDED Definition: fvbaseprimaryvariables.hh:161
Adapter exposing a preconditioner through the inverse-operator interface.
Definition: Preconditioner2InverseOperator.hpp:39