Ewoms::MINRESSolver< X > Class Template Reference

Minimal Residual Method (MINRES) More...

#include <solvers.hh>

Inheritance diagram for Ewoms::MINRESSolver< X >:
Inheritance graph

Public Types

typedef X domain_type
 The domain type of the operator to be inverted. More...
 
typedef X range_type
 The range type of the operator to be inverted. More...
 
typedef X::field_type field_type
 The field type of the operator to be inverted. More...
 
typedef field_type real_type
 

Public Member Functions

template<class L , class P >
 MINRESSolver (L &op, P &prec, real_type reduction, int maxit, int verbose)
 Set up MINRES solver. More...
 
template<class L , class S , class P >
 MINRESSolver (L &op, S &sp, P &prec, real_type reduction, int maxit, int verbose)
 Set up MINRES solver. More...
 
virtual void apply (X &x, X &b, Dune::InverseOperatorResult &res)
 Apply inverse operator. More...
 
virtual const
Ewoms::ConvergenceCriterion< X > & 
convergenceCriterion () const
 Return the criterion to be used to check for convergence of the linear solver. More...
 
virtual
Ewoms::ConvergenceCriterion< X > & 
convergenceCriterion ()
 Return the criterion to be used to check for convergence of the linear solver. More...
 
virtual void setConvergenceCriterion (std::shared_ptr< Ewoms::ConvergenceCriterion< X > > convCrit)
 Set the criterion to be used to check for convergence of the linear solver. More...
 

Detailed Description

template<class X>
class Ewoms::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

template<class X >
typedef X Ewoms::MINRESSolver< X >::domain_type

The domain type of the operator to be inverted.

template<class X >
typedef X::field_type Ewoms::MINRESSolver< X >::field_type

The field type of the operator to be inverted.

template<class X >
typedef X Ewoms::MINRESSolver< X >::range_type

The range type of the operator to be inverted.

template<class X >
typedef field_type Ewoms::MINRESSolver< X >::real_type

Constructor & Destructor Documentation

template<class X >
template<class L , class P >
Ewoms::MINRESSolver< X >::MINRESSolver ( L &  op,
P &  prec,
real_type  reduction,
int  maxit,
int  verbose 
)
inline
template<class X >
template<class L , class S , class P >
Ewoms::MINRESSolver< X >::MINRESSolver ( L &  op,
S &  sp,
P &  prec,
real_type  reduction,
int  maxit,
int  verbose 
)
inline

Member Function Documentation

template<class X >
virtual void Ewoms::MINRESSolver< X >::apply ( X &  x,
X &  b,
Dune::InverseOperatorResult &  res 
)
inlinevirtual
virtual const Ewoms::ConvergenceCriterion<X>& Ewoms::InverseOperator< X, X >::convergenceCriterion ( ) const
inlinevirtualinherited
virtual Ewoms::ConvergenceCriterion<X>& Ewoms::InverseOperator< X, X >::convergenceCriterion ( )
inlinevirtualinherited

Return the criterion to be used to check for convergence of the linear solver.

virtual void Ewoms::InverseOperator< X, X >::setConvergenceCriterion ( std::shared_ptr< Ewoms::ConvergenceCriterion< X > >  convCrit)
inlinevirtualinherited

The documentation for this class was generated from the following file: