dune-istl 2.8.0
|
Abstract base class for all solvers. More...
#include <dune/istl/solver.hh>
Public Types | |
typedef X | domain_type |
Type of the domain of the operator to be inverted. More... | |
typedef Y | range_type |
Type of the range of the operator to be inverted. More... | |
typedef X::field_type | field_type |
The field type of the operator. 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... | |
typedef Simd::Scalar< real_type > | scalar_real_type |
scalar type underlying the field_type More... | |
Public Member Functions | |
virtual void | apply (X &x, Y &b, InverseOperatorResult &res)=0 |
Apply inverse operator,. More... | |
virtual void | apply (X &x, Y &b, double reduction, InverseOperatorResult &res)=0 |
apply inverse operator, with given convergence criteria. More... | |
virtual SolverCategory::Category | category () const =0 |
Category of the solver (see SolverCategory::Category) More... | |
virtual | ~InverseOperator () |
Destructor. More... | |
Protected Types | |
enum | { iterationSpacing = 5 , normSpacing = 16 } |
Protected Member Functions | |
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... | |
Abstract base class for all solvers.
An InverseOperator computes the solution of where
is an operator. Note that the solver "knows" which operator to invert and which preconditioner to apply (if any). The user is only interested in inverting the operator. InverseOperator might be a Newton scheme, a Krylov subspace method, or a direct solver or just anything.
typedef X Dune::InverseOperator< X, Y >::domain_type |
Type of the domain of the operator to be inverted.
typedef X::field_type Dune::InverseOperator< X, Y >::field_type |
The field type of the operator.
typedef Y Dune::InverseOperator< X, Y >::range_type |
Type of the range of the operator to be inverted.
typedef FieldTraits<field_type>::real_type Dune::InverseOperator< X, Y >::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> Dune::InverseOperator< X, Y >::scalar_real_type |
scalar type underlying the field_type
|
inlinevirtual |
Destructor.
|
pure virtual |
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 |
Implemented in Dune::IterativeSolver< X, X >, and Dune::RestartedGMResSolver< X, X >.
|
pure virtual |
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::LoopSolver< X >, Dune::GradientSolver< X >, Dune::CGSolver< X >, Dune::BiCGSTABSolver< X >, Dune::MINRESSolver< X >, Dune::RestartedGMResSolver< X, X >, Dune::GeneralizedPCGSolver< X >, Dune::RestartedFCGSolver< X >, and Dune::CompleteFCGSolver< X >.
|
pure virtual |
Category of the solver (see SolverCategory::Category)
Implemented in Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >, Dune::IterativeSolver< X, Y >, Dune::IterativeSolver< X, X >, Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >, Dune::SuperLU< M >, and Dune::UMFPack< M >.
|
inlineprotected |
helper function for printing header of solver output
|
inlineprotected |
helper function for printing solver output
|
inlineprotected |
helper function for printing solver output