Flexible GMRES method. \rst Flexible version of the GMRES method [Saad03]_. \endrst. Plus de détails...
Graphe d'héritage de Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >:
Graphe de collaboration de Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >:Types publics | |
| typedef Backend | backend_type |
| typedef Backend::vector | vector |
| typedef Backend::value_type | value_type |
| typedef Backend::params | backend_params |
| typedef math::scalar_of< value_type >::type | scalar_type |
| typedef math::rhs_of< value_type >::type | rhs_type |
| typedef math::inner_product_impl< rhs_type >::return_type | coef_type |
| using | params = FlexibleGMRESSolverParams |
Fonctions membres publiques | |
| FlexibleGMRESSolver (size_t n, const params &prm=params(), const backend_params &bprm=backend_params(), const InnerProduct &inner_product=InnerProduct()) | |
Preallocates necessary data structures for the system of size n. | |
| template<class Matrix, class Precond, class Vec1, class Vec2> | |
| SolverResult | operator() (Matrix const &A, Precond const &P, Vec1 const &rhs, Vec2 &x) const |
| Computes the solution for the given system matrix. | |
| template<class Precond, class Vec1, class Vec2> | |
| SolverResult | operator() (Precond const &P, Vec1 const &rhs, Vec2 &x) const |
| Computes the solution for the given right-hand side. | |
| size_t | bytes () const |
| Memory used in bytes. | |
Attributs publics | |
| params | prm |
Fonctions membres privées | |
| template<class Vec> | |
| scalar_type | norm (const Vec &x) const |
Attributs privés | |
| size_t | n |
| multi_array< coef_type, 2 > | H |
| std::vector< coef_type > | s |
| std::vector< coef_type > | cs |
| std::vector< coef_type > | sn |
| std::shared_ptr< vector > | r |
| std::vector< std::shared_ptr< vector > > | v |
| std::vector< std::shared_ptr< vector > > | z |
| InnerProduct | inner_product |
Amis | |
| std::ostream & | operator<< (std::ostream &os, const FlexibleGMRESSolver &s) |
Flexible GMRES method. \rst Flexible version of the GMRES method [Saad03]_. \endrst.
Définition à la ligne 99 du fichier FlexibleGMRESSolver.h.
| typedef Backend::params Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::backend_params |
Définition à la ligne 108 du fichier FlexibleGMRESSolver.h.
| typedef Backend Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::backend_type |
Définition à la ligne 104 du fichier FlexibleGMRESSolver.h.
| typedef math::inner_product_impl<rhs_type>::return_type Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::coef_type |
Définition à la ligne 112 du fichier FlexibleGMRESSolver.h.
| using Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::params = FlexibleGMRESSolverParams |
Définition à la ligne 114 du fichier FlexibleGMRESSolver.h.
| typedef math::rhs_of<value_type>::type Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::rhs_type |
Définition à la ligne 111 du fichier FlexibleGMRESSolver.h.
| typedef math::scalar_of<value_type>::type Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::scalar_type |
Définition à la ligne 110 du fichier FlexibleGMRESSolver.h.
| typedef Backend::value_type Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::value_type |
Définition à la ligne 107 du fichier FlexibleGMRESSolver.h.
| typedef Backend::vector Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::vector |
Définition à la ligne 106 du fichier FlexibleGMRESSolver.h.
|
inline |
Preallocates necessary data structures for the system of size n.
Définition à la ligne 117 du fichier FlexibleGMRESSolver.h.
|
inlinevirtual |
Memory used in bytes.
Implémente Arcane::Alina::SolverBase.
Définition à la ligne 255 du fichier FlexibleGMRESSolver.h.
|
inlineprivate |
Définition à la ligne 298 du fichier FlexibleGMRESSolver.h.
|
inline |
Computes the solution for the given system matrix.
Computes the solution for the given system matrix A and the right-hand side rhs. Returns the number of iterations made and the achieved residual as a std::tuple. The solution vector x provides initial approximation in input and holds the computed solution on output.
The system matrix may differ from the matrix used during initialization. This may be used for the solution of non-stationary problems with slowly changing coefficients. There is a strong chance that a preconditioner built for a time step will act as a reasonably good preconditioner for several subsequent time steps [DeSh12]_.
Définition à la ligne 155 du fichier FlexibleGMRESSolver.h.
|
inline |
Computes the solution for the given right-hand side.
Computes the solution for the given right-hand side rhs. The system matrix is the same that was used for the setup of the preconditioner P. Returns the number of iterations made and the achieved residual as a std::tuple. The solution vector x provides initial approximation in input and holds the computed solution on output.
Définition à la ligne 250 du fichier FlexibleGMRESSolver.h.
|
friend |
Définition à la ligne 273 du fichier FlexibleGMRESSolver.h.
|
private |
Définition à la ligne 290 du fichier FlexibleGMRESSolver.h.
|
mutableprivate |
Définition à la ligne 289 du fichier FlexibleGMRESSolver.h.
|
private |
Définition à la ligne 295 du fichier FlexibleGMRESSolver.h.
|
private |
Définition à la ligne 287 du fichier FlexibleGMRESSolver.h.
| params Arcane::Alina::FlexibleGMRESSolver< Backend, InnerProduct >::prm |
Définition à la ligne 283 du fichier FlexibleGMRESSolver.h.
|
private |
Définition à la ligne 291 du fichier FlexibleGMRESSolver.h.
|
mutableprivate |
Définition à la ligne 290 du fichier FlexibleGMRESSolver.h.
|
private |
Définition à la ligne 290 du fichier FlexibleGMRESSolver.h.
|
private |
Définition à la ligne 292 du fichier FlexibleGMRESSolver.h.
|
private |
Définition à la ligne 293 du fichier FlexibleGMRESSolver.h.