1 #ifndef DUNE_FEM_SOLVER_PRECONDITIONEDINVERSEOPERATOR_HH 2 #define DUNE_FEM_SOLVER_PRECONDITIONEDINVERSEOPERATOR_HH 17 template<
class Preconditioner,
class InverseOperator >
19 :
public Operator< typename Preconditioner::RangeFunctionType >
31 unsigned int maxIterations,
bool verbose )
32 : preconditioner_( op ),
33 inverseOperator_( op, preconditioner_, redEps, absLimit, maxIterations, verbose )
38 : preconditioner_( op ),
39 inverseOperator_( op, preconditioner_, redEps, absLimit, maxIterations )
42 void operator() (
const DomainFunctionType &u, RangeFunctionType &w )
const 44 inverseOperator_( u, w );
47 unsigned int iterations ()
const {
return inverseOperator_.iterations(); }
50 Preconditioner preconditioner_;
51 InverseOperator inverseOperator_;
58 #endif // #ifndef DUNE_FEM_SOLVER_PRECONDITIONEDINVERSEOPERATOR_HH Definition: preconditionedinverseoperator.hh:18
unsigned int iterations() const
Definition: preconditionedinverseoperator.hh:47
InverseOperator::OperatorType OperatorType
Definition: preconditionedinverseoperator.hh:28
BaseType::DomainFunctionType RangeFunctionType
Definition: preconditionedinverseoperator.hh:26
static constexpr T max(T a)
Definition: utility.hh:65
PreconditionedInverseOperator(const OperatorType &op, double redEps, double absLimit, unsigned int maxIterations=std::numeric_limits< unsigned int >::max())
Definition: preconditionedinverseoperator.hh:36
abstract operator
Definition: operator.hh:25
Definition: coordinate.hh:4
void operator()(const DomainFunctionType &u, RangeFunctionType &w) const
Definition: preconditionedinverseoperator.hh:42
PreconditionedInverseOperator(const OperatorType &op, double redEps, double absLimit, unsigned int maxIterations, bool verbose)
Definition: preconditionedinverseoperator.hh:30
BaseType::DomainFunctionType DomainFunctionType
Definition: preconditionedinverseoperator.hh:25
DomainFunction DomainFunctionType
type of discrete function in the operator's domain
Definition: operator.hh:28