|
dune-istl 2.10
|
implements the Generalized Minimal Residual (GMRes) method More...
#include <dune/istl/solvers.hh>

Public Types | |
| typedef X | domain_type |
| Type of the domain of the operator to be inverted. | |
| 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 | 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 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 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 | |
| typedef Simd::Scalar< real_type > | scalar_real_type |
| scalar type underlying the field_type | |
Public Member Functions | |
| RestartedGMResSolver (const LinearOperator< X, Y > &op, Preconditioner< X, Y > &prec, scalar_real_type reduction, int restart, int maxit, int verbose) | |
| Set up RestartedGMResSolver solver. | |
| RestartedGMResSolver (const LinearOperator< X, Y > &op, const ScalarProduct< X > &sp, Preconditioner< X, Y > &prec, scalar_real_type reduction, int restart, int maxit, int verbose) | |
| Set up RestartedGMResSolver solver. | |
| RestartedGMResSolver (std::shared_ptr< const LinearOperator< X, Y > > op, std::shared_ptr< Preconditioner< X, X > > prec, const ParameterTree &configuration) | |
| Constructor. | |
| RestartedGMResSolver (std::shared_ptr< const LinearOperator< X, Y > > op, std::shared_ptr< const ScalarProduct< X > > sp, std::shared_ptr< Preconditioner< X, X > > prec, const ParameterTree &configuration) | |
| RestartedGMResSolver (std::shared_ptr< const LinearOperator< X, Y > > op, std::shared_ptr< const ScalarProduct< X > > sp, std::shared_ptr< Preconditioner< X, Y > > prec, scalar_real_type reduction, int restart, int maxit, int verbose) | |
| Set up RestartedGMResSolver solver. | |
| virtual void | apply (X &x, Y &b, InverseOperatorResult &res) |
| Apply inverse operator. | |
| virtual void | apply (X &x, Y &b, double reduction, InverseOperatorResult &res) |
| Apply inverse operator. | |
| virtual void | apply (X &x, X &b, double reduction, InverseOperatorResult &res) |
| Apply inverse operator with given reduction factor. | |
| virtual void | apply (X &x, X &b, InverseOperatorResult &res)=0 |
| Apply inverse operator,. | |
| virtual void | apply (X &x, X &b, InverseOperatorResult &res)=0 |
| Apply inverse operator,. | |
| virtual SolverCategory::Category | category () const |
| Category of the solver (see SolverCategory::Category). | |
| std::string | name () const |
Protected Types | |
| using | fAlloc = ReboundAllocatorType<X,field_type> |
| field_type Allocator retrieved from domain type | |
| using | rAlloc = ReboundAllocatorType<X,real_type> |
| real_type Allocator retrieved from domain type | |
| using | Iteration = typename IterativeSolver<X,X>::template Iteration<unsigned int> |
| enum | |
| enum | |
Protected Member Functions | |
| void | update (X &w, int i, const std::vector< std::vector< field_type, fAlloc > > &H, const std::vector< field_type, fAlloc > &s, const std::vector< X > &v) |
| template<typename T> | |
| std::enable_if< std::is_same< field_type, real_type >::value, T >::type | conjugate (const T &t) |
| template<typename T> | |
| std::enable_if<!std::is_same< field_type, real_type >::value, T >::type | conjugate (const T &t) |
| void | generatePlaneRotation (field_type &dx, field_type &dy, real_type &cs, field_type &sn) |
| void | applyPlaneRotation (field_type &dx, field_type &dy, real_type &cs, field_type &sn) |
| void | printHeader (std::ostream &s) const |
| helper function for printing header of solver output | |
| 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 | |
| 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 | |
Protected Attributes | |
| int | _restart |
| std::shared_ptr< const LinearOperator< X, X > > | _op |
| std::shared_ptr< Preconditioner< X, X > > | _prec |
| std::shared_ptr< const ScalarProduct< X > > | _sp |
| scalar_real_type | _reduction |
| int | _maxit |
| int | _verbose |
| SolverCategory::Category | _category |
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).
| 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 |
|
inherited |
Type of the domain of the operator to be inverted.
|
inherited |
Type of the domain of the operator to be inverted.
|
protected |
field_type Allocator retrieved from domain type
|
inherited |
The field type of the operator.
|
inherited |
The field type of the operator.
|
protected |
|
protected |
real_type Allocator retrieved from domain type
|
inherited |
Type of the range of the operator to be inverted.
|
inherited |
Type of the range of the operator to be inverted.
|
inherited |
The real type of the field type (is the same if using real numbers, but differs for std::complex).
|
inherited |
The real type of the field type (is the same if using real numbers, but differs for std::complex).
|
inherited |
scalar type underlying the field_type
|
inherited |
scalar type underlying the field_type
|
protectedinherited |
|
protectedinherited |
|
inline |
Set up RestartedGMResSolver solver.
| restart | number of GMRes cycles before restart |
|
inline |
Set up RestartedGMResSolver solver.
| restart | number of GMRes cycles before restart |
|
inline |
Constructor.
Additional parameter:
| ParameterTree Key | Meaning |
|---|---|
| restart | number of GMRes cycles before restart |
See ISTL_Factory for the ParameterTree layout and examples.
|
inline |
|
inline |
Set up RestartedGMResSolver solver.
| restart | number of GMRes cycles before restart |
|
pure virtualinherited |
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 |
Implemented in Dune::BiCGSTABSolver< X >, Dune::CGSolver< X >, Dune::CompleteFCGSolver< X >, Dune::GeneralizedPCGSolver< X >, Dune::GradientSolver< X >, Dune::LoopSolver< X >, Dune::MINRESSolver< X >, Dune::RestartedFCGSolver< X >, and Dune::RestartedGMResSolver< X, X >.
|
inlinevirtualinherited |
Apply inverse operator with given reduction factor.
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 >.
|
pure virtualinherited |
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 |
|
inlinevirtual |
Apply inverse operator.
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 |
|
inlinevirtual |
Apply inverse operator.
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 |
|
inlineprotected |
|
inlinevirtualinherited |
Category of the solver (see SolverCategory::Category).
Implements Dune::InverseOperator< X, X >.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineinherited |
|
inlineprotectedinherited |
helper function for printing header of solver output
|
inlineprotectedinherited |
helper function for printing header of solver output
|
inlineprotectedinherited |
helper function for printing solver output
|
inlineprotectedinherited |
helper function for printing solver output
|
inlineprotectedinherited |
helper function for printing solver output
|
inlineprotectedinherited |
helper function for printing solver output
|
inlineprotected |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protected |
|
protectedinherited |
|
protectedinherited |