# Dune Core Modules (2.4.2)

Dune::InverseOperator< X, Y > Class Template Referenceabstract

Abstract base class for all solvers. More...

#include <dune/istl/solver.hh>

## Public Types

typedef X domain_type
Type of the domain of the operator to be inverted.

typedef Y range_type
Type of the range of the operator to be inverted.

typedef X::field_type field_type
The field type of the operator.

## Public Member Functions

virtual void apply (X &x, Y &b, InverseOperatorResult &res)=0
Apply inverse operator,. More...

virtual void apply (X &x, Y &b, double reduction, InverseOperatorResult &res)=0
apply inverse operator, with given convergence criteria. More...

virtual ~InverseOperator ()
Destructor.

## Protected Member Functions

helper function for printing header of solver output

template<typename CountType , typename DataType >
void printOutput (std::ostream &s, const CountType &iter, const DataType &norm, const DataType &norm_old) const
helper function for printing solver output

template<typename CountType , typename DataType >
void printOutput (std::ostream &s, const CountType &iter, const DataType &norm) const
helper function for printing solver output

## Detailed Description

### template<class X, class Y> class Dune::InverseOperator< X, Y >

Abstract base class for all solvers.

An InverseOperator computes the solution of $$A(x)=b$$ where $$A : X \to Y$$ is an operator. Note that the solver "knows" which operator to invert and which preconditioner to apply (if any). The user is only interested in inverting the operator. InverseOperator might be a Newton scheme, a Krylov subspace method, or a direct solver or just anything.

## ◆ apply() [1/2]

template<class X , class Y >
 virtual void Dune::InverseOperator< X, Y >::apply ( X & x, Y & b, double reduction, InverseOperatorResult & res )
pure virtual

apply inverse operator, with given convergence criteria.

Warning
Right hand side b may be overwritten!
Parameters
 x The left hand side to store the result in. b The right hand side reduction The minimum defect reduction to achieve. res Object to store the statistics about applying the operator.

## ◆ apply() [2/2]

template<class X , class Y >
 virtual void Dune::InverseOperator< X, Y >::apply ( X & x, Y & b, InverseOperatorResult & res )
pure virtual

Apply inverse operator,.

Warning
Note: right hand side b may be overwritten!
Parameters
 x The left hand side to store the result in. b The right hand side res Object to store the statistics about applying the operator.

The documentation for this class was generated from the following file:
|  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 18, 22:30, 2024)