Arcane  v4.1.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >
+ Graphe de collaboration de Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >:

Classes

struct  DistributedAMGLevel
 
struct  params
 

Types publics

using backend_type = Backend
 
using BackendType = Backend
 
typedef Backend::params backend_params
 
typedef Backend::value_type value_type
 
typedef math::scalar_of< value_type >::type scalar_type
 
typedef DistributedMatrix< Backendmatrix
 
typedef Backend::vector vector
 

Fonctions membres publiques

template<class Matrix>
 DistributedAMG (mpi_communicator comm, const Matrix &A, const params &prm=params(), const backend_params &bprm=backend_params())
 
 DistributedAMG (mpi_communicator comm, std::shared_ptr< matrix > A, const params &prm=params(), const backend_params &bprm=backend_params())
 
template<class Matrix>
void rebuild (const Matrix &M, const backend_params &bprm=backend_params())
 Rebuild the hierarchy using the new system matrix.
 
template<class OtherBackend>
std::enable_if<!std::is_same< Backend, OtherBackend >::value, void >::type rebuild (std::shared_ptr< DistributedMatrix< OtherBackend > > A, const backend_params &bprm=backend_params())
 
void rebuild (std::shared_ptr< matrix > A, const backend_params &bprm=backend_params())
 
template<class Vec1, class Vec2>
void cycle (const Vec1 &rhs, Vec2 &&x) const
 
template<class Vec1, class Vec2>
void apply (const Vec1 &rhs, Vec2 &&x) const
 
std::shared_ptr< matrixsystem_matrix_ptr () const
 Returns the system matrix from the finest level.
 
const matrixsystem_matrix () const
 

Attributs publics

struct Arcane::Alina::DistributedAMG::params prm
 

Types privés

typedef std::list< DistributedAMGLevel >::const_iterator level_iterator
 

Fonctions membres privées

void init (std::shared_ptr< matrix > A, const backend_params &bprm)
 
template<class Vec1, class Vec2>
void cycle (level_iterator lvl, const Vec1 &rhs, Vec2 &x) const
 

Attributs privés

mpi_communicator comm
 
std::shared_ptr< matrixA
 
Repartition repart
 
std::list< DistributedAMGLevellevels
 

Amis

template<class B, class C, class R, class D, class I>
std::ostream & operator<< (std::ostream &os, const DistributedAMG< B, C, R, D, I > &a)
 

Description détaillée

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
class Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >

Définition à la ligne 51 du fichier DistributedAMG.h.

Documentation des définitions de type membres

◆ backend_params

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
typedef Backend::params Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::backend_params

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

◆ backend_type

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
using Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::backend_type = Backend

Définition à la ligne 55 du fichier DistributedAMG.h.

◆ BackendType

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
using Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::BackendType = Backend

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

◆ level_iterator

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
typedef std::list<DistributedAMGLevel>::const_iterator Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::level_iterator
private

Définition à la ligne 377 du fichier DistributedAMG.h.

◆ matrix

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
typedef DistributedMatrix<Backend> Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::matrix

Définition à la ligne 61 du fichier DistributedAMG.h.

◆ scalar_type

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
typedef math::scalar_of<value_type>::type Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::scalar_type

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

◆ value_type

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
typedef Backend::value_type Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::value_type

Définition à la ligne 59 du fichier DistributedAMG.h.

◆ vector

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
typedef Backend::vector Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::vector

Définition à la ligne 62 du fichier DistributedAMG.h.

Documentation des constructeurs et destructeur

◆ DistributedAMG() [1/2]

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
template<class Matrix>
Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::DistributedAMG ( mpi_communicator comm,
const Matrix & A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 156 du fichier DistributedAMG.h.

◆ DistributedAMG() [2/2]

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::DistributedAMG ( mpi_communicator comm,
std::shared_ptr< matrix > A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 167 du fichier DistributedAMG.h.

Documentation des fonctions membres

◆ apply()

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::apply ( const Vec1 & rhs,
Vec2 && x ) const
inline

Définition à la ligne 224 du fichier DistributedAMG.h.

◆ cycle() [1/2]

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::cycle ( const Vec1 & rhs,
Vec2 && x ) const
inline

Définition à la ligne 218 du fichier DistributedAMG.h.

◆ cycle() [2/2]

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::cycle ( level_iterator lvl,
const Vec1 & rhs,
Vec2 & x ) const
inlineprivate

Définition à la ligne 429 du fichier DistributedAMG.h.

◆ init()

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
void Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::init ( std::shared_ptr< matrix > A,
const backend_params & bprm )
inlineprivate

Définition à la ligne 384 du fichier DistributedAMG.h.

◆ rebuild() [1/3]

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
template<class Matrix>
void Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::rebuild ( const Matrix & M,
const backend_params & bprm = backend_params() )
inline

Rebuild the hierarchy using the new system matrix.

This requires for prm.allow_rebuild to be set. The transfer operators created during the initial setup are reused.

Définition à la ligne 185 du fichier DistributedAMG.h.

Référencé par Arcane::Alina::DistributedAMG< Backend, DistributedCoarseningRuntime< Backend >, DistributedRelaxationRuntime< Backend >, DistributedDirectSolverRuntime< value_type >, MatrixPartitionerRuntime< Backend > >::rebuild().

+ Voici le graphe des appelants de cette fonction :

◆ rebuild() [2/3]

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
template<class OtherBackend>
std::enable_if<!std::is_same< Backend, OtherBackend >::value, void >::type Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::rebuild ( std::shared_ptr< DistributedMatrix< OtherBackend > > A,
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 193 du fichier DistributedAMG.h.

◆ rebuild() [3/3]

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
void Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::rebuild ( std::shared_ptr< matrix > A,
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 199 du fichier DistributedAMG.h.

◆ system_matrix()

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
const matrix & Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::system_matrix ( ) const
inline

Définition à la ligne 242 du fichier DistributedAMG.h.

◆ system_matrix_ptr()

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
std::shared_ptr< matrix > Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::system_matrix_ptr ( ) const
inline

Returns the system matrix from the finest level.

Définition à la ligne 237 du fichier DistributedAMG.h.

Documentation des fonctions amies et associées

◆ operator<<

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
template<class B, class C, class R, class D, class I>
std::ostream & operator<< ( std::ostream & os,
const DistributedAMG< B, C, R, D, I > & a )
friend

Définition à la ligne 478 du fichier DistributedAMG.h.

Documentation des données membres

◆ A

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
std::shared_ptr<matrix> Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::A
private

Définition à la ligne 380 du fichier DistributedAMG.h.

◆ comm

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
mpi_communicator Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::comm
private

Définition à la ligne 379 du fichier DistributedAMG.h.

◆ levels

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
std::list<DistributedAMGLevel> Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::levels
private

Définition à la ligne 382 du fichier DistributedAMG.h.

◆ repart

template<class Backend, class Coarsening, class Relaxation, class DirectSolver = DistributedSkylineLUDirectSolver<typename Backend::value_type>, class Repartition = SimpleMatrixPartitioner<Backend>>
Repartition Arcane::Alina::DistributedAMG< Backend, Coarsening, Relaxation, DirectSolver, Repartition >::repart
private

Définition à la ligne 381 du fichier DistributedAMG.h.


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