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

#include <solvers.hh>

List of all members.


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.


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

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 >, and Dune::BiCGSTABSolver< X >.

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 >, and Dune::BiCGSTABSolver< X >.


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

Generated on 9 Apr 2008 with Doxygen (ver 1.5.2) [logfile].