Iterative preconditioned solver with deflation. Plus de détails...
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 AlinaContext &context, const Matrix &A, const params &prm=params(), const backend_params &bprm=backend_params()) | |
| DeflatedSolver (const AlinaContext &context, 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().
|
inline |
Définition à la ligne 114 du fichier DeflatedSolver.h.
|
inline |
Définition à la ligne 202 du fichier DeflatedSolver.h.
|
inline |
Définition à la ligne 263 du fichier DeflatedSolver.h.
|
inline |
Stores the parameters used during construction into the property tree p.
Définition à la ligne 252 du fichier DeflatedSolver.h.
|
inline |
Définition à la ligne 131 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 180 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 195 du fichier DeflatedSolver.h.
|
inline |
Returns reference to the constructed preconditioner.
Définition à la ligne 229 du fichier DeflatedSolver.h.
|
inline |
Returns reference to the constructed preconditioner.
Définition à la ligne 223 du fichier DeflatedSolver.h.
Référencé par DeflatedSolver().
|
inline |
Définition à la ligne 209 du fichier DeflatedSolver.h.
|
inline |
Returns the size of the system matrix.
Définition à la ligne 258 du fichier DeflatedSolver.h.
|
inline |
Returns reference to the constructed iterative solver.
Définition à la ligne 235 du fichier DeflatedSolver.h.
Référencé par DeflatedSolver().
|
inline |
Définition à la ligne 246 du fichier DeflatedSolver.h.
|
inline |
Returns the system matrix in the backend format.
Définition à la ligne 241 du fichier DeflatedSolver.h.
|
friend |
Définition à la ligne 268 du fichier DeflatedSolver.h.
|
mutableprivate |
Définition à la ligne 288 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 287 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 282 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 283 du fichier DeflatedSolver.h.
| params Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::prm |
Définition à la ligne 278 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 285 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 284 du fichier DeflatedSolver.h.
|
private |
Définition à la ligne 286 du fichier DeflatedSolver.h.