Classes | Public Member Functions | Private Attributes

SolverFGMRES< VECTOR > Class Template Reference
[Linear solver classes]

Inheritance diagram for SolverFGMRES< VECTOR >:
Inheritance graph
[legend]

List of all members.

Classes

struct  AdditionalData

Public Member Functions

 SolverFGMRES (SolverControl &cn, VectorMemory< VECTOR > &mem, const AdditionalData &data=AdditionalData())
 SolverFGMRES (SolverControl &cn, const AdditionalData &data=AdditionalData())
template<class MATRIX , class PRECONDITIONER >
void solve (const MATRIX &A, VECTOR &x, const VECTOR &b, const PRECONDITIONER &precondition)

Private Attributes

AdditionalData additional_data
FullMatrix< doubleH
FullMatrix< doubleH1

Detailed Description

template<class VECTOR = Vector<double>>
class SolverFGMRES< VECTOR >

Implementation of the Generalized minimal residual method with flexible preconditioning method.

This version of the GMRES method allows for the use of a different preconditioner in each iteration step. Therefore, it is also more robust with respect to inaccurate evaluation of the preconditioner. An important application is also the use of a Krylov space method inside the preconditioner.

FGMRES needs two vectors in each iteration steps yielding a total of 2 * SolverFGMRESAdditionalData::max_basis_size+1 auxiliary vectors.

Caveat: documentation of this class is not up to date. There are also a few parameters of GMRES we would like to introduce here.

Author:
Guido Kanschat, 2003

Definition at line 314 of file solver_gmres.h.


Constructor & Destructor Documentation

template<class VECTOR = Vector<double>>
SolverFGMRES< VECTOR >::SolverFGMRES ( SolverControl cn,
VectorMemory< VECTOR > &  mem,
const AdditionalData data = AdditionalData() 
)

Constructor.

template<class VECTOR = Vector<double>>
SolverFGMRES< VECTOR >::SolverFGMRES ( SolverControl cn,
const AdditionalData data = AdditionalData() 
)

Constructor. Use an object of type GrowingVectorMemory as a default to allocate memory.


Member Function Documentation

template<class VECTOR = Vector<double>>
template<class MATRIX , class PRECONDITIONER >
void SolverFGMRES< VECTOR >::solve ( const MATRIX A,
VECTOR &  x,
const VECTOR &  b,
const PRECONDITIONER &  precondition 
)

Solve the linear system $Ax=b$ for x.

Referenced by SolverSelector< VECTOR >::solve().


Member Data Documentation

template<class VECTOR = Vector<double>>
AdditionalData SolverFGMRES< VECTOR >::additional_data [private]

Additional flags.

Definition at line 377 of file solver_gmres.h.

template<class VECTOR = Vector<double>>
FullMatrix<double> SolverFGMRES< VECTOR >::H [private]

Projected system matrix

Definition at line 381 of file solver_gmres.h.

template<class VECTOR = Vector<double>>
FullMatrix<double> SolverFGMRES< VECTOR >::H1 [private]

Auxiliary matrix for inverting H

Definition at line 385 of file solver_gmres.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Fri Feb 3 2012 06:04:11 by doxygen 1.7.2