implements the Generalized Minimal Residual (GMRes) method
More...
#include <dune/istl/solvers.hh>
|
template<class L , class P > |
| RestartedGMResSolver (L &op, P &prec, real_type reduction, int restart, int maxit, int verbose, bool recalc_defect) |
|
template<class L , class P > |
| RestartedGMResSolver (L &op, P &prec, real_type reduction, int restart, int maxit, int verbose) |
| Set up solver. More...
|
|
template<class L , class S , class P > |
| RestartedGMResSolver (L &op, S &sp, P &prec, real_type reduction, int restart, int maxit, int verbose, bool recalc_defect) |
|
template<class L , class S , class P > |
| RestartedGMResSolver (L &op, S &sp, P &prec, real_type reduction, int restart, int maxit, int verbose) |
| Set up solver. More...
|
|
virtual void | apply (X &x, Y &b, InverseOperatorResult &res) |
| Apply inverse operator. More...
|
|
virtual void | apply (X &x, Y &b, double reduction, InverseOperatorResult &res) |
| Apply inverse operator. More...
|
|
|
void | printHeader (std::ostream &s) const |
| helper function for printing header of solver output More...
|
|
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 More...
|
|
template<typename CountType , typename DataType > |
void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm) const |
| helper function for printing solver output More...
|
|
template<class X, class Y = X, class F = Y>
class Dune::RestartedGMResSolver< X, Y, F >
implements the Generalized Minimal Residual (GMRes) method
GMRes solves the unsymmetric linear system Ax = b using the Generalized Minimal Residual method as described the SIAM Templates book (http://www.netlib.org/templates/templates.pdf).
- Template Parameters
-
X | trial vector, vector type of the solution |
Y | test vector, vector type of the RHS |
F | vector type for orthonormal basis of Krylov space |
◆ basis_type
template<class X , class Y = X, class F = Y>
The field type of the basis vectors.
◆ domain_type
template<class X , class Y = X, class F = Y>
The domain type of the operator to be inverted.
◆ field_type
template<class X , class Y = X, class F = Y>
The field type of the operator to be inverted.
◆ range_type
template<class X , class Y = X, class F = Y>
The range type of the operator to be inverted.
◆ real_type
template<class X , class Y = X, class F = Y>
The real type of the field type (is the same if using real numbers, but differs for std::complex)
◆ anonymous enum
template<class X, class Y>
Enumerator |
---|
iterationSpacing | |
normSpacing | |
◆ RestartedGMResSolver() [1/4]
template<class X , class Y = X, class F = Y>
template<class L , class P >
- Deprecated:
- "recalc_defect is a unused parameter! Use RestartedGMResSolver(L& op, P& prec, real_type reduction, int restart, int maxit, int verbose) instead"
◆ RestartedGMResSolver() [2/4]
template<class X , class Y = X, class F = Y>
template<class L , class P >
Set up solver.
- Parameters
-
restart | number of GMRes cycles before restart |
◆ RestartedGMResSolver() [3/4]
template<class X , class Y = X, class F = Y>
template<class L , class S , class P >
- Deprecated:
- "recalc_defect is a unused parameter! Use RestartedGMResSolver(L& op, S& sp, P& prec, real_type reduction, int restart, int maxit, int verbose) instead"
◆ RestartedGMResSolver() [4/4]
template<class X , class Y = X, class F = Y>
template<class L , class S , class P >
Set up solver.
- Parameters
-
restart | number of GMRes cycles before restart |
◆ apply() [1/2]
template<class X , class Y = X, class F = Y>
Apply inverse operator.
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 |
- Note
- Currently, the RestartedGMResSolver aborts when it detects a breakdown.
Implements Dune::InverseOperator< X, Y >.
◆ apply() [2/2]
template<class X , class Y = X, class F = Y>
Apply inverse operator.
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 |
- Note
- Currently, the RestartedGMResSolver aborts when it detects a breakdown.
Implements Dune::InverseOperator< X, Y >.
◆ printHeader()
template<class X, class Y>
helper function for printing header of solver output
◆ printOutput() [1/2]
template<class X, class Y>
template<typename CountType , typename DataType >
void Dune::InverseOperator< X, Y >::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]
template<class X, class Y>
template<typename CountType , typename DataType >
void Dune::InverseOperator< X, Y >::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: