DUNE PDELab (git)
implements the Flexible Generalized Minimal Residual (FGMRes) method (right preconditioned) More...
#include <dune/istl/solvers.hh>
Public Types | |
typedef X | domain_type |
Type of the domain of the operator to be inverted. | |
typedef X | range_type |
Type of the range of the operator to be inverted. | |
typedef X::field_type | field_type |
The field type of the operator. | |
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) | |
typedef Simd::Scalar< real_type > | scalar_real_type |
scalar type underlying the field_type | |
Public Member Functions | |
void | apply (X &x, Y &b, double reduction, InverseOperatorResult &res) override |
Apply inverse operator. More... | |
void | apply (X &x, X &b, InverseOperatorResult &res) override |
Apply inverse operator. More... | |
void | apply (X &x, X &b, double reduction, InverseOperatorResult &res) override |
Apply inverse operator. More... | |
SolverCategory::Category | category () const override |
Category of the solver (see SolverCategory::Category) | |
Detailed Description
class Dune::RestartedFlexibleGMResSolver< X, Y, F >
implements the Flexible Generalized Minimal Residual (FGMRes) method (right preconditioned)
FGMRes solves the right-preconditioned unsymmetric linear system Ax = b using the Flexible Generalized Minimal Residual method. It is flexible because the preconditioner can change in every iteration, which allows to use Krylov solvers without fixed number of iterations as preconditioners. Needs more memory than GMRes.
- 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
Member Function Documentation
◆ apply() [1/3]
|
inlineoverridevirtualinherited |
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.
Reimplemented from Dune::IterativeSolver< X, X >.
◆ apply() [2/3]
|
inlineoverridevirtualinherited |
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, X >.
◆ apply() [3/3]
|
inlineoverride |
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 RestartedFlexibleGMResSolver aborts when it detects a breakdown.
References Dune::Simd::allTrue(), Dune::InverseOperatorResult::converged, and DUNE_THROW.
The documentation for this class was generated from the following file:
- dune/istl/solvers.hh