Loose GMRES. \rst The LGMRES algorithm [BaJM05]_ is designed to avoid some problems in the convergence in restarted GMRES, and often converges in fewer iterations. \endrst. Plus de détails...
Graphe d'héritage de Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >:
Graphe de collaboration de Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >: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 = LooseGMRESSolverParams |
Fonctions membres publiques | |
| LooseGMRESSolver (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 |
| size_t | M |
| multi_array< coef_type, 2 > | H |
| multi_array< coef_type, 2 > | H0 |
| 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 > > | vs |
| std::vector< std::shared_ptr< vector > > | ws |
| std::vector< std::shared_ptr< vector > > | outer_v_data |
| circular_buffer< std::shared_ptr< vector > > | outer_v |
| InnerProduct | inner_product |
Amis | |
| std::ostream & | operator<< (std::ostream &os, const LooseGMRESSolver &s) |
Loose GMRES. \rst The LGMRES algorithm [BaJM05]_ is designed to avoid some problems in the convergence in restarted GMRES, and often converges in fewer iterations. \endrst.
Définition à la ligne 165 du fichier LooseGMRESSolver.h.
| typedef Backend::params Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::backend_params |
Définition à la ligne 175 du fichier LooseGMRESSolver.h.
| using Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::backend_type = Backend |
Définition à la ligne 170 du fichier LooseGMRESSolver.h.
| using Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::BackendType = Backend |
Définition à la ligne 171 du fichier LooseGMRESSolver.h.
| typedef math::inner_product_impl<rhs_type>::return_type Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::coef_type |
Définition à la ligne 179 du fichier LooseGMRESSolver.h.
| using Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::params = LooseGMRESSolverParams |
Définition à la ligne 181 du fichier LooseGMRESSolver.h.
| typedef math::rhs_of<value_type>::type Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::rhs_type |
Définition à la ligne 178 du fichier LooseGMRESSolver.h.
| typedef math::scalar_of<value_type>::type Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::scalar_type |
Définition à la ligne 177 du fichier LooseGMRESSolver.h.
| typedef Backend::value_type Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::value_type |
Définition à la ligne 174 du fichier LooseGMRESSolver.h.
| typedef Backend::vector Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::vector |
Définition à la ligne 173 du fichier LooseGMRESSolver.h.
|
inline |
Preallocates necessary data structures for the system of size n.
Définition à la ligne 184 du fichier LooseGMRESSolver.h.
|
inlinevirtual |
Memory used in bytes.
Implémente Arcane::Alina::SolverBase.
Définition à la ligne 397 du fichier LooseGMRESSolver.h.
|
inlineprivate |
Définition à la ligne 445 du fichier LooseGMRESSolver.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 226 du fichier LooseGMRESSolver.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 392 du fichier LooseGMRESSolver.h.
|
friend |
Définition à la ligne 419 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 436 du fichier LooseGMRESSolver.h.
|
mutableprivate |
Définition à la ligne 435 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 435 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 442 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 433 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 433 du fichier LooseGMRESSolver.h.
|
mutableprivate |
Définition à la ligne 440 du fichier LooseGMRESSolver.h.
|
mutableprivate |
Définition à la ligne 439 du fichier LooseGMRESSolver.h.
| params Arcane::Alina::LooseGMRESSolver< Backend, InnerProduct >::prm |
Définition à la ligne 429 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 437 du fichier LooseGMRESSolver.h.
|
mutableprivate |
Définition à la ligne 436 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 436 du fichier LooseGMRESSolver.h.
|
mutableprivate |
Définition à la ligne 438 du fichier LooseGMRESSolver.h.
|
private |
Définition à la ligne 438 du fichier LooseGMRESSolver.h.