Generalized Minimal Residual (GMRES) method. Plus de détails...
Types publics | |
| using | backend_type = Backend |
| using | BackendType = Backend |
| 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 = GMRESSolverParams |
Fonctions membres publiques | |
| GMRESSolver (const AlinaContext &context, size_t n, const params &prm=params(), const backend_params &backend_prm=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 |
| template<class Precond, class Vec1, class Vec2> | |
| std::tuple< size_t, scalar_type > | operator() (Precond const &P, Vec1 const &rhs, Vec2 &x) const |
| Computes the solution for the given right-hand side. | |
| size_t | bytes () const |
| Mémoire utilisée en octets. | |
| Fonctions membres publiques hérités de Arcane::Alina::SolverBase | |
| SolverBase (const AlinaContext &context) | |
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 |
| InnerProduct | inner_product |
Amis | |
| std::ostream & | operator<< (std::ostream &os, const GMRESSolver &s) |
Generalized Minimal Residual (GMRES) method.
\rst The Generalized Minimal Residual method is an extension of MINRES (which is only applicable to symmetric systems) to unsymmetric systems [Barr94]_. \endrst
Définition à la ligne 103 du fichier GMRESSolver.h.
| typedef Backend::params Arcane::Alina::GMRESSolver< Backend, InnerProduct >::backend_params |
Définition à la ligne 113 du fichier GMRESSolver.h.
| using Arcane::Alina::GMRESSolver< Backend, InnerProduct >::backend_type = Backend |
Définition à la ligne 108 du fichier GMRESSolver.h.
| using Arcane::Alina::GMRESSolver< Backend, InnerProduct >::BackendType = Backend |
Définition à la ligne 109 du fichier GMRESSolver.h.
| typedef math::inner_product_impl<rhs_type>::return_type Arcane::Alina::GMRESSolver< Backend, InnerProduct >::coef_type |
Définition à la ligne 117 du fichier GMRESSolver.h.
| using Arcane::Alina::GMRESSolver< Backend, InnerProduct >::params = GMRESSolverParams |
Définition à la ligne 119 du fichier GMRESSolver.h.
| typedef math::rhs_of<value_type>::type Arcane::Alina::GMRESSolver< Backend, InnerProduct >::rhs_type |
Définition à la ligne 116 du fichier GMRESSolver.h.
| typedef math::scalar_of<value_type>::type Arcane::Alina::GMRESSolver< Backend, InnerProduct >::scalar_type |
Définition à la ligne 115 du fichier GMRESSolver.h.
| typedef Backend::value_type Arcane::Alina::GMRESSolver< Backend, InnerProduct >::value_type |
Définition à la ligne 112 du fichier GMRESSolver.h.
| typedef Backend::vector Arcane::Alina::GMRESSolver< Backend, InnerProduct >::vector |
Définition à la ligne 111 du fichier GMRESSolver.h.
|
inline |
Preallocates necessary data structures for the system of size n.
Définition à la ligne 122 du fichier GMRESSolver.h.
|
inlinevirtual |
Mémoire utilisée en octets.
Implémente Arcane::Alina::SolverBase.
Définition à la ligne 288 du fichier GMRESSolver.h.
|
inlineprivate |
Définition à la ligne 316 du fichier GMRESSolver.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 157 du fichier GMRESSolver.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 271 du fichier GMRESSolver.h.
|
friend |
Définition à la ligne 276 du fichier GMRESSolver.h.
|
private |
Définition à la ligne 309 du fichier GMRESSolver.h.
|
mutableprivate |
Définition à la ligne 308 du fichier GMRESSolver.h.
|
private |
Définition à la ligne 313 du fichier GMRESSolver.h.
|
private |
Définition à la ligne 306 du fichier GMRESSolver.h.
| params Arcane::Alina::GMRESSolver< Backend, InnerProduct >::prm |
Définition à la ligne 286 du fichier GMRESSolver.h.
|
private |
Définition à la ligne 310 du fichier GMRESSolver.h.
|
mutableprivate |
Définition à la ligne 309 du fichier GMRESSolver.h.
|
private |
Définition à la ligne 309 du fichier GMRESSolver.h.
|
private |
Définition à la ligne 311 du fichier GMRESSolver.h.