dune-istl 3.0-git
|
Preconditioned loop solver. More...
#include <dune/istl/solvers.hh>
Public Types | |
typedef X | domain_type |
The domain type of the operator that we do the inverse for. | |
typedef X | range_type |
The range type of the operator that we do the inverse for. | |
typedef X::field_type | field_type |
The field type of the operator that we do the inverse for. | |
typedef FieldTraits< field_type >::real_type | real_type |
The real type of the field type (is the same if using real numbers, but differs for std::complex) | |
Public Member Functions | |
template<class L , class P > | |
LoopSolver (L &op, P &prec, real_type reduction, int maxit, int verbose) | |
Set up Loop solver. | |
template<class L , class S , class P > | |
LoopSolver (L &op, S &sp, P &prec, real_type reduction, int maxit, int verbose) | |
Set up loop solver. | |
virtual void | apply (X &x, X &b, InverseOperatorResult &res) |
Apply inverse operator,. | |
virtual void | apply (X &x, X &b, double reduction, InverseOperatorResult &res) |
apply inverse operator, with given convergence criteria. | |
Protected Types | |
enum | |
Protected Member Functions | |
void | printHeader (std::ostream &s) const |
helper function for printing header of solver output | |
void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm, const DataType &norm_old) const |
helper function for printing solver output | |
void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm) const |
helper function for printing solver output | |
Preconditioned loop solver.
Implements a preconditioned loop. Using this class every Preconditioner can be turned into a solver. The solver will apply one preconditioner step in each iteration loop.
typedef X Dune::LoopSolver< X >::domain_type |
The domain type of the operator that we do the inverse for.
typedef X::field_type Dune::LoopSolver< X >::field_type |
The field type of the operator that we do the inverse for.
typedef X Dune::LoopSolver< X >::range_type |
The range type of the operator that we do the inverse for.
typedef FieldTraits<field_type>::real_type Dune::LoopSolver< X >::real_type |
The real type of the field type (is the same if using real numbers, but differs for std::complex)
|
inline |
Set up Loop solver.
op | The operator we solve. |
prec | The preconditioner to apply in each iteration of the loop. Has to inherit from Preconditioner. |
reduction | The relative defect reduction to achieve when applying the operator. |
maxit | The maximum number of iteration steps allowed when applying the operator. |
verbose | The verbosity level. |
Verbose levels are:
|
inline |
Set up loop solver.
op | The operator we solve. |
sp | The scalar product to use, e. g. SeqScalarproduct. |
prec | The preconditioner to apply in each iteration of the loop. Has to inherit from Preconditioner. |
reduction | The relative defect reduction to achieve when applying the operator. |
maxit | The maximum number of iteration steps allowed when applying the operator. |
verbose | The verbosity level. |
Verbose levels are:
|
inlinevirtual |
apply inverse operator, with given convergence criteria.
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. |
SolverAbort | When the solver detects a problem and cannot continue |
Implements Dune::InverseOperator< X, X >.
|
inlinevirtual |
Apply inverse operator,.
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. |
SolverAbort | When the solver detects a problem and cannot continue |
Implements Dune::InverseOperator< X, X >.
|
inlineprotectedinherited |
helper function for printing header of solver output
|
inlineprotectedinherited |
helper function for printing solver output
|
inlineprotectedinherited |
helper function for printing solver output