![]() |
Reference documentation for deal.II version 8.1.0
|
#include <solver_gmres.h>
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) |
Public Member Functions inherited from Solver< VECTOR > | |
| Solver (SolverControl &solver_control, VectorMemory< VECTOR > &vector_memory) | |
| Solver (SolverControl &solver_control) | |
| SolverControl & | control () const |
Public Member Functions inherited from Subscriptor | |
| Subscriptor () | |
| Subscriptor (const Subscriptor &) | |
| virtual | ~Subscriptor () |
| Subscriptor & | operator= (const Subscriptor &) |
| void | subscribe (const char *identifier=0) const |
| void | unsubscribe (const char *identifier=0) const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers () const |
| DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.") | |
| DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1) | |
| template<class Archive > | |
| void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
| AdditionalData | additional_data |
| FullMatrix< double > | H |
| FullMatrix< double > | H1 |
Additional Inherited Members | |
Protected Attributes inherited from Solver< VECTOR > | |
| GrowingVectorMemory< VECTOR > | static_vector_memory |
| SolverControl & | cntrl |
| VectorMemory< VECTOR > & | memory |
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.
Definition at line 309 of file solver_gmres.h.
| SolverFGMRES< VECTOR >::SolverFGMRES | ( | SolverControl & | cn, |
| VectorMemory< VECTOR > & | mem, | ||
| const AdditionalData & | data = AdditionalData() |
||
| ) |
Constructor.
| SolverFGMRES< VECTOR >::SolverFGMRES | ( | SolverControl & | cn, |
| const AdditionalData & | data = AdditionalData() |
||
| ) |
Constructor. Use an object of type GrowingVectorMemory as a default to allocate memory.
| void SolverFGMRES< VECTOR >::solve | ( | const MATRIX & | A, |
| VECTOR & | x, | ||
| const VECTOR & | b, | ||
| const PRECONDITIONER & | precondition | ||
| ) |
Solve the linear system
for x.
|
private |
Additional flags.
Definition at line 362 of file solver_gmres.h.
|
private |
Projected system matrix
Definition at line 366 of file solver_gmres.h.
|
private |
Auxiliary matrix for inverting H
Definition at line 370 of file solver_gmres.h.
1.8.6