DUNE-FEM (unstable)
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. | |
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, 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) | |
virtual | ~InverseOperator () |
Destructor. | |
Detailed Description
class Dune::InverseOperator< X, Y >
Abstract base class for all solvers.
An InverseOperator computes the solution of \( A(x)=b\) where \( A : X \to Y \) 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.
Member Function Documentation
◆ apply() [1/2]
|
pure virtual |
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::Cholmod< Vector, Index >, Dune::IterativeSolver< X, X >, and Dune::RestartedGMResSolver< X, X >.
◆ apply() [2/2]
|
pure virtual |
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::Cholmod< Vector, Index >, 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 >.
The documentation for this class was generated from the following file:
- dune/istl/solver.hh