Ewoms::InverseOperator< X, Y > Class Template Referenceabstract

Abstract base class for all solvers. More...

#include <solvers.hh>

Inheritance diagram for Ewoms::InverseOperator< X, Y >:
Inheritance graph

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...
 

Public Member Functions

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...
 
virtual void apply (X &x, Y &b, Dune::InverseOperatorResult &res)=0
 Apply inverse operator,. More...
 
virtual ~InverseOperator ()
 Destructor. More...
 

Detailed Description

template<class X, class Y>
class Ewoms::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 Typedef Documentation

template<class X, class Y>
typedef X Ewoms::InverseOperator< X, Y >::domain_type

Type of the domain of the operator to be inverted.

template<class X, class Y>
typedef X::field_type Ewoms::InverseOperator< X, Y >::field_type

The field type of the operator.

template<class X, class Y>
typedef Y Ewoms::InverseOperator< X, Y >::range_type

Type of the range of the operator to be inverted.

Constructor & Destructor Documentation

template<class X, class Y>
virtual Ewoms::InverseOperator< X, Y >::~InverseOperator ( )
inlinevirtual

Destructor.

Member Function Documentation

template<class X, class Y>
virtual void Ewoms::InverseOperator< X, Y >::apply ( X &  x,
Y &  b,
Dune::InverseOperatorResult &  res 
)
pure virtual

Apply inverse operator,.

Warning
Note: right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
resObject to store the statistics about applying the operator.

Implemented in Ewoms::GeneralizedPCGSolver< X >, Ewoms::MINRESSolver< X >, Ewoms::BiCGSTABSolver< X >, Ewoms::CGSolver< X >, Ewoms::GradientSolver< X >, and Ewoms::LoopSolver< X >.

template<class X, class Y>
virtual const Ewoms::ConvergenceCriterion<X>& Ewoms::InverseOperator< X, Y >::convergenceCriterion ( ) const
inlinevirtual

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

Referenced by Ewoms::RestartedGMResSolver< X, Y, F >::apply().

template<class X, class Y>
virtual Ewoms::ConvergenceCriterion<X>& Ewoms::InverseOperator< X, Y >::convergenceCriterion ( )
inlinevirtual

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

template<class X, class Y>
virtual void Ewoms::InverseOperator< X, Y >::setConvergenceCriterion ( std::shared_ptr< Ewoms::ConvergenceCriterion< X > >  convCrit)
inlinevirtual

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

Referenced by Ewoms::RestartedGMResSolver< X, Y, F >::RestartedGMResSolver().


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