![]() |
Reference documentation for deal.II version 9.1.1
|
#include <deal.II/lac/solver_gmres.h>
Classes | |
struct | AdditionalData |
Public Member Functions | |
SolverFGMRES (SolverControl &cn, VectorMemory< VectorType > &mem, const AdditionalData &data=AdditionalData()) | |
SolverFGMRES (SolverControl &cn, const AdditionalData &data=AdditionalData()) | |
template<typename MatrixType , typename PreconditionerType > | |
void | solve (const MatrixType &A, VectorType &x, const VectorType &b, const PreconditionerType &preconditioner) |
![]() | |
SolverBase (SolverControl &solver_control, VectorMemory< VectorType > &vector_memory) | |
SolverBase (SolverControl &solver_control) | |
boost::signals2::connection | connect (const std::function< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate)> &slot) |
![]() | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
Subscriptor (Subscriptor &&) noexcept | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
template<typename StreamType > | |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
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 | |
![]() | |
using | vector_type = VectorType |
![]() | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
![]() | |
GrowingVectorMemory< VectorType > | static_vector_memory |
VectorMemory< VectorType > & | memory |
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate), StateCombiner > | iteration_status |
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. As opposed to SolverGMRES which allows one to choose between left and right preconditioning, this solver always applies the preconditioner from the right.
FGMRES needs two vectors in each iteration steps yielding a total of 2*SolverFGMRES::AdditionalData::max_basis_size+1
auxiliary vectors.
Definition at line 460 of file solver_gmres.h.
SolverFGMRES< VectorType >::SolverFGMRES | ( | SolverControl & | cn, |
VectorMemory< VectorType > & | mem, | ||
const AdditionalData & | data = AdditionalData() |
||
) |
Constructor.
SolverFGMRES< VectorType >::SolverFGMRES | ( | SolverControl & | cn, |
const AdditionalData & | data = AdditionalData() |
||
) |
Constructor. Use an object of type GrowingVectorMemory as a default to allocate memory.
void SolverFGMRES< VectorType >::solve | ( | const MatrixType & | A, |
VectorType & | x, | ||
const VectorType & | b, | ||
const PreconditionerType & | preconditioner | ||
) |
Solve the linear system \(Ax=b\) for x.
|
private |
Additional flags.
Definition at line 521 of file solver_gmres.h.
|
private |
Projected system matrix
Definition at line 526 of file solver_gmres.h.
|
private |
Auxiliary matrix for inverting H
Definition at line 531 of file solver_gmres.h.