IDR(s) method (Induced Dimension Reduction). 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< typenamemath::rhs_of< value_type >::type >::return_type | coef_type |
| using | params = IDRSSolverParams |
Fonctions membres publiques | |
| IDRSSolver (const AlinaContext &context, 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 &Prec, 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 |
| 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 |
| template<class Vector1, class Vector2> | |
| coef_type | omega (const Vector1 &t, const Vector2 &s) const |
Attributs privés | |
| size_t | n |
| InnerProduct | inner_product |
| multi_array< coef_type, 2 > | M |
| std::vector< coef_type > | f |
| std::vector< coef_type > | c |
| std::shared_ptr< vector > | r |
| std::shared_ptr< vector > | v |
| std::shared_ptr< vector > | t |
| std::shared_ptr< vector > | x_s |
| std::shared_ptr< vector > | r_s |
| std::vector< std::shared_ptr< vector > > | P |
| std::vector< std::shared_ptr< vector > > | G |
| std::vector< std::shared_ptr< vector > > | U |
Amis | |
| std::ostream & | operator<< (std::ostream &os, const IDRSSolver &s) |
IDR(s) method (Induced Dimension Reduction).
Définition à la ligne 138 du fichier IDRSSolver.h.
| typedef Backend::params Arcane::Alina::IDRSSolver< Backend, InnerProduct >::backend_params |
Définition à la ligne 148 du fichier IDRSSolver.h.
| using Arcane::Alina::IDRSSolver< Backend, InnerProduct >::backend_type = Backend |
Définition à la ligne 143 du fichier IDRSSolver.h.
| using Arcane::Alina::IDRSSolver< Backend, InnerProduct >::BackendType = Backend |
Définition à la ligne 144 du fichier IDRSSolver.h.
| typedef math::inner_product_impl<typenamemath::rhs_of<value_type>::type>::return_type Arcane::Alina::IDRSSolver< Backend, InnerProduct >::coef_type |
Définition à la ligne 153 du fichier IDRSSolver.h.
| using Arcane::Alina::IDRSSolver< Backend, InnerProduct >::params = IDRSSolverParams |
Définition à la ligne 155 du fichier IDRSSolver.h.
| typedef math::rhs_of<value_type>::type Arcane::Alina::IDRSSolver< Backend, InnerProduct >::rhs_type |
Définition à la ligne 151 du fichier IDRSSolver.h.
| typedef math::scalar_of<value_type>::type Arcane::Alina::IDRSSolver< Backend, InnerProduct >::scalar_type |
Définition à la ligne 150 du fichier IDRSSolver.h.
| typedef Backend::value_type Arcane::Alina::IDRSSolver< Backend, InnerProduct >::value_type |
Définition à la ligne 147 du fichier IDRSSolver.h.
| typedef Backend::vector Arcane::Alina::IDRSSolver< Backend, InnerProduct >::vector |
Définition à la ligne 146 du fichier IDRSSolver.h.
|
inline |
Preallocates necessary data structures for the system of size n.
Définition à la ligne 158 du fichier IDRSSolver.h.
|
inlinevirtual |
Mémoire utilisée en octets.
Implémente Arcane::Alina::SolverBase.
Définition à la ligne 406 du fichier IDRSSolver.h.
|
inlineprivate |
Définition à la ligne 462 du fichier IDRSSolver.h.
|
inlineprivate |
Définition à la ligne 468 du fichier IDRSSolver.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 234 du fichier IDRSSolver.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 401 du fichier IDRSSolver.h.
|
friend |
Définition à la ligne 434 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 453 du fichier IDRSSolver.h.
|
mutableprivate |
Définition à la ligne 453 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 459 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 450 du fichier IDRSSolver.h.
|
mutableprivate |
Définition à la ligne 452 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 448 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 459 du fichier IDRSSolver.h.
| params Arcane::Alina::IDRSSolver< Backend, InnerProduct >::prm |
Définition à la ligne 444 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 455 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 457 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 455 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 459 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 455 du fichier IDRSSolver.h.
|
private |
Définition à la ligne 456 du fichier IDRSSolver.h.