Dune::InverseOperator< X, Y > Class Template Reference
[Iterative Solvers]

Abstract base class for all solvers. More...

#include <dune/istl/solvers.hh>

Inheritance diagram for Dune::InverseOperator< X, Y >:
Inheritance graph

List of all members.

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,.
virtual void apply (X &x, Y &b, double reduction, InverseOperatorResult &res)=0
 apply inverse operator, with given convergence criteria.
virtual ~InverseOperator ()
 Destructor.

Protected Types

enum  { iterationSpacing = 5, normSpacing = 16 }

Protected Member Functions

void printHeader (std::ostream &s) const
 helper function for printing header of solver output
template<class DataType >
void printOutput (std::ostream &s, const double iter, const DataType &norm, const DataType &norm_old) const
 helper function for printing solver output
template<class DataType >
void printOutput (std::ostream &s, const double 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.


Member Typedef Documentation

template<class X, class Y>
typedef X::field_type Dune::InverseOperator< X, Y >::field_type

Member Enumeration Documentation

template<class X, class Y>
anonymous enum [protected]
Enumerator:
iterationSpacing 
normSpacing 

Constructor & Destructor Documentation

template<class X, class Y>
virtual Dune::InverseOperator< X, Y >::~InverseOperator (  )  [inline, virtual]

Destructor.


Member Function Documentation

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.

Implemented in Dune::LoopSolver< X >, Dune::GradientSolver< X >, Dune::CGSolver< X >, Dune::BiCGSTABSolver< X >, and Dune::MINRESSolver< X >.

Referenced by Dune::Amg::KAMG< M, X, S, PI, K, A >::apply(), and Dune::Amg::KAmgTwoGrid< Amg >::apply().

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.

Implemented in Dune::LoopSolver< X >, Dune::GradientSolver< X >, Dune::CGSolver< X >, Dune::BiCGSTABSolver< X >, Dune::MINRESSolver< X >, and Dune::RestartedGMResSolver< X, Y, F >.

template<class X, class Y>
void Dune::InverseOperator< X, Y >::printHeader ( std::ostream &  s  )  const [inline, protected]

helper function for printing header of solver output

Referenced by Dune::RestartedGMResSolver< X, Y, F >::apply().

template<class X, class Y>
template<class DataType >
void Dune::InverseOperator< X, Y >::printOutput ( std::ostream &  s,
const double  iter,
const DataType &  norm,
const DataType &  norm_old 
) const [inline, protected]

helper function for printing solver output

Referenced by Dune::RestartedGMResSolver< X, Y, F >::apply().

template<class X, class Y>
template<class DataType >
void Dune::InverseOperator< X, Y >::printOutput ( std::ostream &  s,
const double  iter,
const DataType &  norm 
) const [inline, protected]

helper function for printing solver output


The documentation for this class was generated from the following file:

Generated on Fri Apr 29 2011 with Doxygen (ver 1.7.1) [doxygen-log,error-log].