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

Chebyshev polynomial smoother. Plus de détails...

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

+ Graphe d'héritage de Arcane::Alina::ChebyshevRelaxation< Backend >:
+ Graphe de collaboration de Arcane::Alina::ChebyshevRelaxation< Backend >:

Classes

struct  params
 Relaxation parameters. Plus de détails...
 

Types publics

typedef Backend::value_type value_type
 
typedef Backend::vector vector
 
typedef math::scalar_of< value_type >::type scalar_type
 

Fonctions membres publiques

template<class Matrix>
 ChebyshevRelaxation (const Matrix &A, const params &prm, const typename Backend::params &backend_prm)
 Constructs smoother for the system matrix.
 
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void apply_pre (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &) const
 
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void apply_post (const Matrix &A, const VectorRHS &rhs, VectorX &x, VectorTMP &) const
 
template<class Matrix, class VectorRHS, class VectorX>
void apply (const Matrix &A, const VectorRHS &rhs, VectorX &x) const
 
size_t bytes () const
 Memory used in bytes.
 

Attributs publics

struct Arcane::Alina::ChebyshevRelaxation::params prm
 

Fonctions membres privées

template<class Matrix, class VectorB, class VectorX>
void solve (const Matrix &A, const VectorB &b, VectorX &x) const
 

Attributs privés

std::shared_ptr< typename Backend::matrix_diagonalM
 
std::shared_ptr< vectorp
 
std::shared_ptr< vectorr
 
scalar_type c
 
scalar_type d
 

Description détaillée

template<class Backend>
class Arcane::Alina::ChebyshevRelaxation< Backend >

Chebyshev polynomial smoother.

Paramètres
BackendBackend for temporary structures allocation.

Implements Algorithm 1 from P. Ghysels, P. Kłosiewicz, and W. Vanroose. "Improving the arithmetic intensity of multigrid with the help of polynomial smoothers". Numer. Linear Algebra Appl. 2012;19:253-267. DOI: 10.1002/nla.1808

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

Documentation des définitions de type membres

◆ scalar_type

template<class Backend>
typedef math::scalar_of<value_type>::type Arcane::Alina::ChebyshevRelaxation< Backend >::scalar_type

Définition à la ligne 252 du fichier Relaxation.h.

◆ value_type

template<class Backend>
typedef Backend::value_type Arcane::Alina::ChebyshevRelaxation< Backend >::value_type

Définition à la ligne 249 du fichier Relaxation.h.

◆ vector

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

Documentation des constructeurs et destructeur

◆ ChebyshevRelaxation()

template<class Backend>
template<class Matrix>
Arcane::Alina::ChebyshevRelaxation< Backend >::ChebyshevRelaxation ( const Matrix & A,
const params & prm,
const typename Backend::params & backend_prm )
inline

Constructs smoother for the system matrix.

Paramètres
AThe system matrix.
prmRelaxation parameters.
backend_prmBackend parameters.

Définition à la ligne 303 du fichier Relaxation.h.

Documentation des fonctions membres

◆ apply()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX>
void Arcane::Alina::ChebyshevRelaxation< Backend >::apply ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x ) const
inline

Définition à la ligne 344 du fichier Relaxation.h.

◆ apply_post()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void Arcane::Alina::ChebyshevRelaxation< Backend >::apply_post ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP &  ) const
inline

Définition à la ligne 338 du fichier Relaxation.h.

◆ apply_pre()

template<class Backend>
template<class Matrix, class VectorRHS, class VectorX, class VectorTMP>
void Arcane::Alina::ChebyshevRelaxation< Backend >::apply_pre ( const Matrix & A,
const VectorRHS & rhs,
VectorX & x,
VectorTMP &  ) const
inline

Définition à la ligne 332 du fichier Relaxation.h.

◆ bytes()

template<class Backend>
size_t Arcane::Alina::ChebyshevRelaxation< Backend >::bytes ( ) const
inlinevirtual

Memory used in bytes.

Implémente Arcane::Alina::RelaxationBase.

Définition à la ligne 350 du fichier Relaxation.h.

◆ solve()

template<class Backend>
template<class Matrix, class VectorB, class VectorX>
void Arcane::Alina::ChebyshevRelaxation< Backend >::solve ( const Matrix & A,
const VectorB & b,
VectorX & x ) const
inlineprivate

Définition à la ligne 366 du fichier Relaxation.h.

Documentation des données membres

◆ c

template<class Backend>
scalar_type Arcane::Alina::ChebyshevRelaxation< Backend >::c
private

Définition à la ligne 363 du fichier Relaxation.h.

◆ d

template<class Backend>
scalar_type Arcane::Alina::ChebyshevRelaxation< Backend >::d
private

Définition à la ligne 363 du fichier Relaxation.h.

◆ M

template<class Backend>
std::shared_ptr<typename Backend::matrix_diagonal> Arcane::Alina::ChebyshevRelaxation< Backend >::M
private

Définition à la ligne 360 du fichier Relaxation.h.

◆ p

template<class Backend>
std::shared_ptr<vector> Arcane::Alina::ChebyshevRelaxation< Backend >::p
mutableprivate

Définition à la ligne 361 du fichier Relaxation.h.

◆ r

template<class Backend>
std::shared_ptr<vector> Arcane::Alina::ChebyshevRelaxation< Backend >::r
private

Définition à la ligne 361 du fichier Relaxation.h.


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