|
dune-istl 2.8.0
|
Minimal Residual Method (MINRES) More...
#include <dune/istl/solvers.hh>

Public Types | |
| typedef X | domain_type |
| Type of the domain of the operator to be inverted. | |
| typedef Y | 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 | |
| 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 reduction factor. | |
| virtual void | apply (X &x, Y &b, InverseOperatorResult &res)=0 |
| Apply inverse operator,. | |
| virtual void | apply (X &x, Y &b, double reduction, InverseOperatorResult &res)=0 |
| apply inverse operator, with given convergence criteria. | |
| virtual SolverCategory::Category | category () const |
| Category of the solver (see SolverCategory::Category) | |
| std::string | name () const |
Protected Types | |
| using | Iteration = typename IterativeSolver< X, X >::template Iteration< unsigned int > |
| enum | { iterationSpacing = 5 , normSpacing = 16 } |
Protected Member Functions | |
| void | printHeader (std::ostream &s) const |
| helper function for printing header of solver output | |
| 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 | |
| template<typename CountType , typename DataType > | |
| void | printOutput (std::ostream &s, const CountType &iter, const DataType &norm) const |
| helper function for printing solver output | |
Protected Attributes | |
| std::shared_ptr< LinearOperator< X, X > > | _op |
| std::shared_ptr< Preconditioner< X, X > > | _prec |
| std::shared_ptr< ScalarProduct< X > > | _sp |
| scalar_real_type | _reduction |
| int | _maxit |
| int | _verbose |
| SolverCategory::Category | _category |
Detailed Description
class Dune::MINRESSolver< X >
Minimal Residual Method (MINRES)
Symmetrically Preconditioned MINRES as in A. Greenbaum, 'Iterative Methods for Solving Linear Systems', pp. 121 Iterative solver for symmetric indefinite operators. Note that in order to ensure the (symmetrically) preconditioned system to remain symmetric, the preconditioner has to be spd.
Member Typedef Documentation
◆ domain_type
|
inherited |
Type of the domain of the operator to be inverted.
◆ field_type
|
inherited |
The field type of the operator.
◆ Iteration
|
protected |
◆ range_type
|
inherited |
Type of the range of the operator to be inverted.
◆ real_type
|
inherited |
The real type of the field type (is the same if using real numbers, but differs for std::complex)
◆ scalar_real_type
|
inherited |
scalar type underlying the field_type
Member Enumeration Documentation
◆ anonymous enum
|
protectedinherited |
Member Function Documentation
◆ apply() [1/4]
|
inlinevirtualinherited |
Apply inverse operator with given reduction factor.
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
◆ apply() [2/4]
|
inlinevirtual |
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
◆ apply() [3/4]
|
pure virtualinherited |
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
Implemented in Dune::RestartedGMResSolver< X, Y, F >, and Dune::RestartedFlexibleGMResSolver< X, Y, F >.
◆ apply() [4/4]
|
pure virtualinherited |
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
Implemented in Dune::RestartedGMResSolver< X, Y, F >.
◆ category()
|
inlinevirtualinherited |
Category of the solver (see SolverCategory::Category)
Implements Dune::InverseOperator< X, Y >.
◆ name()
|
inlineinherited |
◆ printHeader()
|
inlineprotectedinherited |
helper function for printing header of solver output
◆ printOutput() [1/2]
|
inlineprotectedinherited |
helper function for printing solver output
◆ printOutput() [2/2]
|
inlineprotectedinherited |
helper function for printing solver output
Member Data Documentation
◆ _category
|
protectedinherited |
◆ _maxit
|
protectedinherited |
◆ _op
|
protectedinherited |
◆ _prec
|
protectedinherited |
◆ _reduction
|
protectedinherited |
◆ _sp
|
protectedinherited |
◆ _verbose
|
protectedinherited |
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8