Conjugate Gradients solver. Plus de détails...
Graphe d'héritage de Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >:
Graphe de collaboration de Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >:Types publics | |
| using | Backend = Backend_ |
| 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::inner_product_impl< typenamemath::rhs_of< value_type >::type >::return_type | coef_type |
| using | params = ConjugateGradientSolverParams |
Fonctions membres publiques | |
| ConjugateGradientSolver (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() (const Matrix &A, const Precond &P, const Vec1 &rhs, Vec2 &&x) const |
| template<class Precond, class Vec1, class Vec2> | |
| SolverResult | operator() (const Precond &P, const Vec1 &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 |
| std::shared_ptr< vector > | r |
| std::shared_ptr< vector > | s |
| std::shared_ptr< vector > | p |
| std::shared_ptr< vector > | q |
| InnerProduct | inner_product |
Amis | |
| std::ostream & | operator<< (std::ostream &os, const ConjugateGradientSolver &s) |
Conjugate Gradients solver.
An effective method for symmetric positive definite systems [Barr94]_.
Définition à la ligne 95 du fichier ConjugateGradientSolver.h.
| using Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::Backend = Backend_ |
Définition à la ligne 100 du fichier ConjugateGradientSolver.h.
| typedef Backend::params Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::backend_params |
Définition à la ligne 106 du fichier ConjugateGradientSolver.h.
| using Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::backend_type = Backend |
Définition à la ligne 101 du fichier ConjugateGradientSolver.h.
| using Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::BackendType = Backend |
Définition à la ligne 102 du fichier ConjugateGradientSolver.h.
| typedef math::inner_product_impl<typenamemath::rhs_of<value_type>::type>::return_type Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::coef_type |
Définition à la ligne 111 du fichier ConjugateGradientSolver.h.
| using Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::params = ConjugateGradientSolverParams |
Définition à la ligne 113 du fichier ConjugateGradientSolver.h.
| typedef math::scalar_of<value_type>::type Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::scalar_type |
Définition à la ligne 108 du fichier ConjugateGradientSolver.h.
| typedef Backend::value_type Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::value_type |
Définition à la ligne 105 du fichier ConjugateGradientSolver.h.
| typedef Backend::vector Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::vector |
Définition à la ligne 104 du fichier ConjugateGradientSolver.h.
|
inline |
Preallocates necessary data structures for the system of size n.
Définition à la ligne 116 du fichier ConjugateGradientSolver.h.
|
inlinevirtual |
Memory used in bytes.
Implémente Arcane::Alina::SolverBase.
Définition à la ligne 210 du fichier ConjugateGradientSolver.h.
|
inlineprivate |
Définition à la ligne 242 du fichier ConjugateGradientSolver.h.
|
inline |
Définition à la ligne 141 du fichier ConjugateGradientSolver.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 205 du fichier ConjugateGradientSolver.h.
|
friend |
Définition à la ligne 218 du fichier ConjugateGradientSolver.h.
|
private |
Définition à la ligne 239 du fichier ConjugateGradientSolver.h.
|
private |
Définition à la ligne 232 du fichier ConjugateGradientSolver.h.
|
private |
Définition à la ligne 236 du fichier ConjugateGradientSolver.h.
| params Arcane::Alina::ConjugateGradientSolver< Backend_, InnerProduct >::prm |
Définition à la ligne 228 du fichier ConjugateGradientSolver.h.
|
private |
Définition à la ligne 237 du fichier ConjugateGradientSolver.h.
|
private |
Définition à la ligne 234 du fichier ConjugateGradientSolver.h.
|
private |
Définition à la ligne 235 du fichier ConjugateGradientSolver.h.