Iterative preconditioned solver with deflation. Plus de détails...
Graphe d'héritage de Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >:
Graphe de collaboration de Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >:Classes | |
| struct | params |
| Combined parameters of the bundled preconditioner and the iterative solver. Plus de détails... | |
Types publics | |
| typedef IterativeSolver::backend_type | backend_type |
| typedef backend_type::matrix | matrix |
| typedef backend_type::vector | vector |
| typedef backend_type::value_type | value_type |
| typedef backend_type::params | backend_params |
| typedef BuiltinBackend< value_type >::matrix | build_matrix |
| typedef math::scalar_of< value_type >::type | scalar_type |
Fonctions membres publiques | |
| template<class Matrix> | |
| DeflatedSolver (const Matrix &A, const params &prm=params(), const backend_params &bprm=backend_params()) | |
| DeflatedSolver (std::shared_ptr< build_matrix > A, const params &prm=params(), const backend_params &bprm=backend_params()) | |
| template<class Matrix> | |
| void | init (const Matrix &A, const backend_params &bprm) |
| template<class Matrix, class Vec1, class Vec2> | |
| SolverResult | operator() (const Matrix &A, const Vec1 &rhs, Vec2 &&x) const |
| Computes the solution for the given system matrix. | |
| template<class Vec1, class Vec2> | |
| SolverResult | operator() (const Vec1 &rhs, Vec2 &&x) const |
| Computes the solution for the given right-hand. | |
| template<class Vec1, class Vec2> | |
| void | apply (const Vec1 &rhs, Vec2 &&x) const |
| template<class Vec1, class Vec2> | |
| void | project (const Vec1 &b, Vec2 &x) const |
| const Precond & | precond () const |
| Returns reference to the constructed preconditioner. | |
| Precond & | precond () |
| Returns reference to the constructed preconditioner. | |
| const IterativeSolver & | solver () const |
| Returns reference to the constructed iterative solver. | |
| std::shared_ptr< typename Precond::matrix > | system_matrix_ptr () const |
| Returns the system matrix in the backend format. | |
| Precond::matrix const & | system_matrix () const |
| void | get_params (Alina::PropertyTree &p) const |
Stores the parameters used during construction into the property tree p. | |
| size_t | size () const |
| Returns the size of the system matrix. | |
| size_t | bytes () const |
Attributs publics | |
| params | prm |
Attributs privés | |
| size_t | n |
| Precond | P |
| IterativeSolver | S |
| std::shared_ptr< vector > | r |
| std::vector< std::shared_ptr< vector > > | Z |
| std::vector< scalar_type > | E |
| std::vector< scalar_type > | d |
Amis | |
| std::ostream & | operator<< (std::ostream &os, const DeflatedSolver &p) |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arcane::Alina::detail::non_copyable | |
| non_copyable (non_copyable const &)=delete | |
| void | operator= (non_copyable const &x)=delete |
Iterative preconditioned solver with deflation.
Définition à la ligne 42 du fichier DeflatedSolver.h.
| typedef backend_type::params Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::backend_params |
Définition à la ligne 57 du fichier DeflatedSolver.h.
| typedef IterativeSolver::backend_type Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::backend_type |
Définition à la ligne 52 du fichier DeflatedSolver.h.
| typedef BuiltinBackend<value_type>::matrix Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::build_matrix |
Définition à la ligne 58 du fichier DeflatedSolver.h.
| typedef backend_type::matrix Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::matrix |
Définition à la ligne 53 du fichier DeflatedSolver.h.
| typedef math::scalar_of<value_type>::type Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::scalar_type |
Définition à la ligne 60 du fichier DeflatedSolver.h.
| typedef backend_type::value_type Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::value_type |
Définition à la ligne 56 du fichier DeflatedSolver.h.
| typedef backend_type::vector Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::vector |
Définition à la ligne 54 du fichier DeflatedSolver.h.
|
inline |
Sets up the preconditioner and creates the iterative solver.
Définition à la ligne 96 du fichier DeflatedSolver.h.
Références precond(), et solver().
Voici le graphe d'appel pour cette fonction :
|
inline |
Définition à la ligne 113 du fichier DeflatedSolver.h.
|
inline |
Définition à la ligne 200 du fichier DeflatedSolver.h.
|
inline |
Définition à la ligne 261 du fichier DeflatedSolver.h.
|
inline |
Stores the parameters used during construction into the property tree p.
Définition à la ligne 250 du fichier DeflatedSolver.h.
|
inline |
Définition à la ligne 129 du fichier DeflatedSolver.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.
\rst 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]_. \endrst
Définition à la ligne 178 du fichier DeflatedSolver.h.
|
inline |
Computes the solution for the given right-hand.
Computes the solution for the given 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.
Définition à la ligne 193 du fichier DeflatedSolver.h.
|
inline |
Returns reference to the constructed preconditioner.
Définition à la ligne 227 du fichier DeflatedSolver.h.
|
inline |
Returns reference to the constructed preconditioner.
Définition à la ligne 221 du fichier DeflatedSolver.h.
Référencé par DeflatedSolver().
Voici le graphe des appelants de cette fonction :
|
inline |
Définition à la ligne 207 du fichier DeflatedSolver.h.
|
inline |
Returns the size of the system matrix.
Définition à la ligne 256 du fichier DeflatedSolver.h.
|
inline |
Returns reference to the constructed iterative solver.
Définition à la ligne 233 du fichier DeflatedSolver.h.
Référencé par DeflatedSolver().
Voici le graphe des appelants de cette fonction :
|
inline |
Définition à la ligne 244 du fichier DeflatedSolver.h.
|
inline |
Returns the system matrix in the backend format.
Définition à la ligne 239 du fichier DeflatedSolver.h.
|
friend |
Définition à la ligne 266 du fichier DeflatedSolver.h.
|
mutableprivate |
Définition à la ligne 286 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 285 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 280 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 281 du fichier DeflatedSolver.h.
| params Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::prm |
Définition à la ligne 276 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 283 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 282 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 284 du fichier DeflatedSolver.h.