KASKADE 7 development version
Public Types | Public Member Functions | List of all members
RestartedFGMResSolver< X > Class Template Reference

implements the Generalized Minimal Residual (GMRes) method More...

#include <fgmres.hh>

Detailed Description

template<class X>
class RestartedFGMResSolver< X >

implements the Generalized Minimal Residual (GMRes) method

GMRes solves the unsymmetric linear system Ax = b using the Generalized Minimal Residual method as described the SIAM Templates book (http://www.netlib.org/templates/templates.pdf).

Todo:
F durch rebind erzeugen und nur den field_type für F übergeben

Definition at line 31 of file fgmres.hh.

Inheritance diagram for RestartedFGMResSolver< X >:

Public Types

typedef X Y
 
typedef X F
 
typedef X domain_type
 The domain type of the operator to be inverted. More...
 
typedef Y 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 F basis_type
 The field type of the basis vectors. More...
 

Public Member Functions

template<class L , class P >
 RestartedFGMResSolver (L &op, P &prec, double reduction, int restart, int maxit, int verbose, bool recalc_defect=false)
 Set up solver. More...
 
template<class L , class S , class P >
 RestartedFGMResSolver (L &op, S &sp, P &prec, double reduction, int restart, int maxit, int verbose, bool recalc_defect=false)
 Set up solver. More...
 
virtual void apply (X &x, X &b, Dune::InverseOperatorResult &res)
 
virtual void apply (X &x, Y &b, double reduction, Dune::InverseOperatorResult &res)
 Apply inverse operator. More...
 

Member Typedef Documentation

◆ basis_type

template<class X >
typedef F RestartedFGMResSolver< X >::basis_type

The field type of the basis vectors.

Definition at line 44 of file fgmres.hh.

◆ domain_type

template<class X >
typedef X RestartedFGMResSolver< X >::domain_type

The domain type of the operator to be inverted.

Definition at line 38 of file fgmres.hh.

◆ F

template<class X >
typedef X RestartedFGMResSolver< X >::F

Definition at line 35 of file fgmres.hh.

◆ field_type

template<class X >
typedef X::field_type RestartedFGMResSolver< X >::field_type

The field type of the operator to be inverted.

Definition at line 42 of file fgmres.hh.

◆ range_type

template<class X >
typedef Y RestartedFGMResSolver< X >::range_type

The range type of the operator to be inverted.

Definition at line 40 of file fgmres.hh.

◆ Y

template<class X >
typedef X RestartedFGMResSolver< X >::Y

Definition at line 34 of file fgmres.hh.

Constructor & Destructor Documentation

◆ RestartedFGMResSolver() [1/2]

template<class X >
template<class L , class P >
RestartedFGMResSolver< X >::RestartedFGMResSolver ( L &  op,
P &  prec,
double  reduction,
int  restart,
int  maxit,
int  verbose,
bool  recalc_defect = false 
)
inline

Set up solver.

Parameters
restartnumber of GMRes cycles before restart
recalc_defectrecalculate the defect after everey restart or not [default=false]

Definition at line 54 of file fgmres.hh.

◆ RestartedFGMResSolver() [2/2]

template<class X >
template<class L , class S , class P >
RestartedFGMResSolver< X >::RestartedFGMResSolver ( L &  op,
S &  sp,
P &  prec,
double  reduction,
int  restart,
int  maxit,
int  verbose,
bool  recalc_defect = false 
)
inline

Set up solver.

Parameters
restartnumber of GMRes cycles before restart
recalc_defectrecalculate the defect after everey restart or not [default=false]

Definition at line 74 of file fgmres.hh.

Member Function Documentation

◆ apply() [1/2]

template<class X >
virtual void RestartedFGMResSolver< X >::apply ( X &  x,
X &  b,
Dune::InverseOperatorResult &  res 
)
inlinevirtual

Definition at line 87 of file fgmres.hh.

Referenced by RestartedFGMResSolver< X >::apply().

◆ apply() [2/2]

template<class X >
virtual void RestartedFGMResSolver< X >::apply ( X &  x,
Y b,
double  reduction,
Dune::InverseOperatorResult &  res 
)
inlinevirtual

Apply inverse operator.

Definition at line 97 of file fgmres.hh.


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