Arcane  v4.1.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >

Iterative preconditioned solver with deflation. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/alina/arccore/alina/DeflatedSolver.h>

+ 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_typeE
 
std::vector< scalar_typed
 

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
 

Description détaillée

template<class Precond, class IterativeSolver>
class Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >

Iterative preconditioned solver with deflation.

Définition à la ligne 42 du fichier DeflatedSolver.h.

Documentation des définitions de type membres

◆ backend_params

template<class Precond, class IterativeSolver>
typedef backend_type::params Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::backend_params

Définition à la ligne 57 du fichier DeflatedSolver.h.

◆ backend_type

template<class Precond, class IterativeSolver>
typedef IterativeSolver::backend_type Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::backend_type

Définition à la ligne 52 du fichier DeflatedSolver.h.

◆ build_matrix

template<class Precond, class IterativeSolver>
typedef BuiltinBackend<value_type>::matrix Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::build_matrix

Définition à la ligne 58 du fichier DeflatedSolver.h.

◆ matrix

template<class Precond, class IterativeSolver>
typedef backend_type::matrix Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::matrix

Définition à la ligne 53 du fichier DeflatedSolver.h.

◆ scalar_type

template<class Precond, class IterativeSolver>
typedef math::scalar_of<value_type>::type Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::scalar_type

Définition à la ligne 60 du fichier DeflatedSolver.h.

◆ value_type

template<class Precond, class IterativeSolver>
typedef backend_type::value_type Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::value_type

Définition à la ligne 56 du fichier DeflatedSolver.h.

◆ vector

template<class Precond, class IterativeSolver>
typedef backend_type::vector Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::vector

Définition à la ligne 54 du fichier DeflatedSolver.h.

Documentation des constructeurs et destructeur

◆ DeflatedSolver() [1/2]

template<class Precond, class IterativeSolver>
template<class Matrix>
Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::DeflatedSolver ( const Matrix & A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
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 :

◆ DeflatedSolver() [2/2]

template<class Precond, class IterativeSolver>
Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::DeflatedSolver ( std::shared_ptr< build_matrix > A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 113 du fichier DeflatedSolver.h.

Documentation des fonctions membres

◆ apply()

template<class Precond, class IterativeSolver>
template<class Vec1, class Vec2>
void Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::apply ( const Vec1 & rhs,
Vec2 && x ) const
inline

Définition à la ligne 200 du fichier DeflatedSolver.h.

◆ bytes()

template<class Precond, class IterativeSolver>
size_t Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::bytes ( ) const
inline

Définition à la ligne 261 du fichier DeflatedSolver.h.

◆ get_params()

template<class Precond, class IterativeSolver>
void Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::get_params ( Alina::PropertyTree & p) const
inline

Stores the parameters used during construction into the property tree p.

Définition à la ligne 250 du fichier DeflatedSolver.h.

◆ init()

template<class Precond, class IterativeSolver>
template<class Matrix>
void Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::init ( const Matrix & A,
const backend_params & bprm )
inline

Définition à la ligne 129 du fichier DeflatedSolver.h.

◆ operator()() [1/2]

template<class Precond, class IterativeSolver>
template<class Matrix, class Vec1, class Vec2>
SolverResult Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::operator() ( const Matrix & A,
const Vec1 & rhs,
Vec2 && x ) const
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.

◆ operator()() [2/2]

template<class Precond, class IterativeSolver>
template<class Vec1, class Vec2>
SolverResult Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::operator() ( const Vec1 & rhs,
Vec2 && x ) const
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.

◆ precond() [1/2]

template<class Precond, class IterativeSolver>
Precond & Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::precond ( )
inline

Returns reference to the constructed preconditioner.

Définition à la ligne 227 du fichier DeflatedSolver.h.

◆ precond() [2/2]

template<class Precond, class IterativeSolver>
const Precond & Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::precond ( ) const
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 :

◆ project()

template<class Precond, class IterativeSolver>
template<class Vec1, class Vec2>
void Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::project ( const Vec1 & b,
Vec2 & x ) const
inline

Définition à la ligne 207 du fichier DeflatedSolver.h.

◆ size()

template<class Precond, class IterativeSolver>
size_t Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::size ( ) const
inline

Returns the size of the system matrix.

Définition à la ligne 256 du fichier DeflatedSolver.h.

◆ solver()

template<class Precond, class IterativeSolver>
const IterativeSolver & Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::solver ( ) const
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 :

◆ system_matrix()

template<class Precond, class IterativeSolver>
Precond::matrix const & Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::system_matrix ( ) const
inline

Définition à la ligne 244 du fichier DeflatedSolver.h.

◆ system_matrix_ptr()

template<class Precond, class IterativeSolver>
std::shared_ptr< typename Precond::matrix > Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::system_matrix_ptr ( ) const
inline

Returns the system matrix in the backend format.

Définition à la ligne 239 du fichier DeflatedSolver.h.

Documentation des fonctions amies et associées

◆ operator<<

template<class Precond, class IterativeSolver>
std::ostream & operator<< ( std::ostream & os,
const DeflatedSolver< Precond, IterativeSolver > & p )
friend

Définition à la ligne 266 du fichier DeflatedSolver.h.

Documentation des données membres

◆ d

template<class Precond, class IterativeSolver>
std::vector<scalar_type> Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::d
mutableprivate

Définition à la ligne 286 du fichier DeflatedSolver.h.

◆ E

template<class Precond, class IterativeSolver>
std::vector<scalar_type> Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::E
private

Définition à la ligne 285 du fichier DeflatedSolver.h.

◆ n

template<class Precond, class IterativeSolver>
size_t Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::n
private

Définition à la ligne 280 du fichier DeflatedSolver.h.

◆ P

template<class Precond, class IterativeSolver>
Precond Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::P
private

Définition à la ligne 281 du fichier DeflatedSolver.h.

◆ prm

template<class Precond, class IterativeSolver>
params Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::prm

Définition à la ligne 276 du fichier DeflatedSolver.h.

◆ r

template<class Precond, class IterativeSolver>
std::shared_ptr<vector> Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::r
private

Définition à la ligne 283 du fichier DeflatedSolver.h.

◆ S

template<class Precond, class IterativeSolver>
IterativeSolver Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::S
private

Définition à la ligne 282 du fichier DeflatedSolver.h.

◆ Z

template<class Precond, class IterativeSolver>
std::vector<std::shared_ptr<vector> > Arcane::Alina::DeflatedSolver< Precond, IterativeSolver >::Z
private

Définition à la ligne 284 du fichier DeflatedSolver.h.


La documentation de cette classe a été générée à partir du fichier suivant :