Preconditioned loop solver.
More...
#include <dune/istl/solvers.hh>
|
typedef X | domain_type |
| The domain type of the operator that we do the inverse for. More...
|
|
typedef X | range_type |
| The range type of the operator that we do the inverse for. More...
|
|
typedef X::field_type | field_type |
| The field type of the operator that we do the inverse for. More...
|
|
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) More...
|
|
|
template<class L , class P > |
| LoopSolver (L &op, P &prec, real_type reduction, int maxit, int verbose) |
| Set up Loop solver. More...
|
|
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. More...
|
|
virtual void | apply (X &x, X &b, InverseOperatorResult &res) |
| Apply inverse operator,. More...
|
|
virtual void | apply (X &x, X &b, double reduction, InverseOperatorResult &res) |
| apply inverse operator, with given convergence criteria. More...
|
|
|
void | printHeader (std::ostream &s) const |
| helper function for printing header of solver output More...
|
|
void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm, const DataType &norm_old) const |
| helper function for printing solver output More...
|
|
void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm) const |
| helper function for printing solver output More...
|
|
template<class X>
class Dune::LoopSolver< X >
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.
◆ domain_type
The domain type of the operator that we do the inverse for.
◆ field_type
The field type of the operator that we do the inverse for.
◆ range_type
The range type of the operator that we do the inverse for.
◆ real_type
The real type of the field type (is the same if using real numbers, but differs for std::complex)
◆ anonymous enum
◆ LoopSolver() [1/2]
template<class X >
template<class L , class P >
Set up Loop solver.
- Parameters
-
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:
-
0 : print nothing
-
1 : print initial and final defect and statistics
-
2 : print line for each iteration
◆ LoopSolver() [2/2]
template<class X >
template<class L , class S , class P >
Set up loop solver.
- Parameters
-
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:
-
0 : print nothing
-
1 : print initial and final defect and statistics
-
2 : print line for each iteration
◆ apply() [1/2]
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. |
- Exceptions
-
SolverAbort | When the solver detects a problem and cannot continue |
Implements Dune::InverseOperator< X, X >.
◆ apply() [2/2]
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. |
- Exceptions
-
SolverAbort | When the solver detects a problem and cannot continue |
Implements Dune::InverseOperator< X, X >.
◆ printHeader()
helper function for printing header of solver output
◆ printOutput() [1/2]
void Dune::InverseOperator< X, X >::printOutput |
( |
std::ostream & |
s, |
|
|
const CountType & |
iter, |
|
|
const DataType & |
norm, |
|
|
const DataType & |
norm_old |
|
) |
| const |
|
inlineprotectedinherited |
helper function for printing solver output
◆ printOutput() [2/2]
void Dune::InverseOperator< X, X >::printOutput |
( |
std::ostream & |
s, |
|
|
const CountType & |
iter, |
|
|
const DataType & |
norm |
|
) |
| const |
|
inlineprotectedinherited |
helper function for printing solver output
The documentation for this class was generated from the following file: