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

Distributed solver based on subdomain deflation. Plus de détails...

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

+ Graphe de collaboration de Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >:

Classes

struct  params
 

Types publics

typedef LocalPrecond::backend_type backend_type
 
typedef backend_type::params backend_params
 
typedef backend_type::value_type value_type
 
typedef math::scalar_of< value_type >::type scalar_type
 
typedef backend_type::matrix bmatrix
 
typedef backend_type::vector vector
 
typedef DistributedMatrix< backend_type > matrix
 

Fonctions membres publiques

template<class Matrix>
 DistributedSubDomainDeflation (mpi_communicator comm, const Matrix &Astrip, const params &prm=params(), const backend_params &bprm=backend_params())
 
 DistributedSubDomainDeflation (mpi_communicator comm, std::shared_ptr< matrix > A, const params &prm=params(), const backend_params &bprm=backend_params())
 
void init (const params &prm=params(), const backend_params &bprm=backend_params())
 
template<class Vec1, class Vec2>
void apply (const Vec1 &rhs, Vec2 &&x) const
 
std::shared_ptr< matrixsystem_matrix_ptr () const
 
const matrixsystem_matrix () const
 
template<class Matrix, class Vec1, class Vec2>
std::tuple< size_t, value_type > operator() (const Matrix &A, const Vec1 &rhs, Vec2 &&x) const
 
template<class Vec1, class Vec2>
std::tuple< size_t, value_type > operator() (const Vec1 &rhs, Vec2 &&x) const
 
size_t size () const
 
template<class Vector>
void project (Vector &x) const
 

Fonctions membres privées

void coarse_solve (std::vector< value_type > &f, std::vector< value_type > &x) const
 
template<class Vec1, class Vec2>
void postprocess (const Vec1 &rhs, Vec2 &x) const
 

Attributs privés

mpi_communicator comm
 
ptrdiff_t nrows
 
ptrdiff_t ndv
 
ptrdiff_t nz
 
std::shared_ptr< matrixA
 
std::shared_ptr< matrixAZ
 
std::shared_ptr< LocalPrecond > P
 
std::vector< value_type > df
 
std::vector< value_type > dx
 
std::vector< ptrdiff_t > dv_start
 
std::vector< std::shared_ptr< vector > > Z
 
std::shared_ptr< DirectSolver > E
 
std::shared_ptr< vector > q
 
std::shared_ptr< vector > dd
 
IterativeSolver S
 

Attributs privés statiques

static const int tag_exc_vals = 2011
 
static const int tag_exc_dmat = 3011
 
static const int tag_exc_dvec = 4011
 
static const int tag_exc_lnnz = 5011
 

Description détaillée

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
class Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >

Distributed solver based on subdomain deflation.

Voir également
[Frank2001]

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

Documentation des définitions de type membres

◆ backend_params

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
typedef backend_type::params Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::backend_params

Définition à la ligne 134 du fichier DistributedSubDomainDeflation.h.

◆ backend_type

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
typedef LocalPrecond::backend_type Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::backend_type

Définition à la ligne 133 du fichier DistributedSubDomainDeflation.h.

◆ bmatrix

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
typedef backend_type::matrix Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::bmatrix

Définition à la ligne 177 du fichier DistributedSubDomainDeflation.h.

◆ matrix

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
typedef DistributedMatrix<backend_type> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::matrix

Définition à la ligne 179 du fichier DistributedSubDomainDeflation.h.

◆ scalar_type

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
typedef math::scalar_of<value_type>::type Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::scalar_type

Définition à la ligne 176 du fichier DistributedSubDomainDeflation.h.

◆ value_type

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
typedef backend_type::value_type Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::value_type

Définition à la ligne 175 du fichier DistributedSubDomainDeflation.h.

◆ vector

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
typedef backend_type::vector Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::vector

Définition à la ligne 178 du fichier DistributedSubDomainDeflation.h.

Documentation des constructeurs et destructeur

◆ DistributedSubDomainDeflation() [1/2]

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
template<class Matrix>
Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::DistributedSubDomainDeflation ( mpi_communicator comm,
const Matrix & Astrip,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 182 du fichier DistributedSubDomainDeflation.h.

◆ DistributedSubDomainDeflation() [2/2]

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::DistributedSubDomainDeflation ( mpi_communicator comm,
std::shared_ptr< matrix > A,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 198 du fichier DistributedSubDomainDeflation.h.

Documentation des fonctions membres

◆ apply()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::apply ( const Vec1 & rhs,
Vec2 && x ) const
inline

Définition à la ligne 462 du fichier DistributedSubDomainDeflation.h.

◆ coarse_solve()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
void Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::coarse_solve ( std::vector< value_type > & f,
std::vector< value_type > & x ) const
inlineprivate

Définition à la ligne 550 du fichier DistributedSubDomainDeflation.h.

◆ init()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
void Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::init ( const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 214 du fichier DistributedSubDomainDeflation.h.

◆ operator()() [1/2]

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
template<class Matrix, class Vec1, class Vec2>
std::tuple< size_t, value_type > Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::operator() ( const Matrix & A,
const Vec1 & rhs,
Vec2 && x ) const
inline

Définition à la ligne 481 du fichier DistributedSubDomainDeflation.h.

◆ operator()() [2/2]

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
template<class Vec1, class Vec2>
std::tuple< size_t, value_type > Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::operator() ( const Vec1 & rhs,
Vec2 && x ) const
inline

Définition à la ligne 491 du fichier DistributedSubDomainDeflation.h.

◆ postprocess()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::postprocess ( const Vec1 & rhs,
Vec2 & x ) const
inlineprivate

Définition à la ligne 558 du fichier DistributedSubDomainDeflation.h.

◆ project()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
template<class Vector>
void Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::project ( Vector & x) const
inline

Définition à la ligne 504 du fichier DistributedSubDomainDeflation.h.

◆ size()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
size_t Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::size ( ) const
inline

Définition à la ligne 498 du fichier DistributedSubDomainDeflation.h.

◆ system_matrix()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
const matrix & Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::system_matrix ( ) const
inline

Définition à la ligne 475 du fichier DistributedSubDomainDeflation.h.

◆ system_matrix_ptr()

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::shared_ptr< matrix > Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::system_matrix_ptr ( ) const
inline

Définition à la ligne 470 du fichier DistributedSubDomainDeflation.h.

Documentation des données membres

◆ A

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::shared_ptr<matrix> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::A
private

Définition à la ligne 535 du fichier DistributedSubDomainDeflation.h.

◆ AZ

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::shared_ptr<matrix> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::AZ
private

Définition à la ligne 535 du fichier DistributedSubDomainDeflation.h.

◆ comm

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
mpi_communicator Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::comm
private

Définition à la ligne 532 du fichier DistributedSubDomainDeflation.h.

◆ dd

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::shared_ptr<vector> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::dd
private

Définition à la ligne 546 du fichier DistributedSubDomainDeflation.h.

◆ df

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::vector<value_type> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::df
mutableprivate

Définition à la ligne 538 du fichier DistributedSubDomainDeflation.h.

◆ dv_start

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::vector<ptrdiff_t> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::dv_start
private

Définition à la ligne 539 du fichier DistributedSubDomainDeflation.h.

◆ dx

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::vector<value_type> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::dx
private

Définition à la ligne 538 du fichier DistributedSubDomainDeflation.h.

◆ E

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::shared_ptr<DirectSolver> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::E
private

Définition à la ligne 543 du fichier DistributedSubDomainDeflation.h.

◆ ndv

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
ptrdiff_t Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::ndv
private

Définition à la ligne 533 du fichier DistributedSubDomainDeflation.h.

◆ nrows

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
ptrdiff_t Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::nrows
private

Définition à la ligne 533 du fichier DistributedSubDomainDeflation.h.

◆ nz

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
ptrdiff_t Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::nz
private

Définition à la ligne 533 du fichier DistributedSubDomainDeflation.h.

◆ P

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::shared_ptr<LocalPrecond> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::P
private

Définition à la ligne 536 du fichier DistributedSubDomainDeflation.h.

◆ q

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::shared_ptr<vector> Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::q
private

Définition à la ligne 545 du fichier DistributedSubDomainDeflation.h.

◆ S

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
IterativeSolver Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::S
private

Définition à la ligne 548 du fichier DistributedSubDomainDeflation.h.

◆ tag_exc_dmat

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
const int Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::tag_exc_dmat = 3011
staticprivate

Définition à la ligne 528 du fichier DistributedSubDomainDeflation.h.

◆ tag_exc_dvec

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
const int Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::tag_exc_dvec = 4011
staticprivate

Définition à la ligne 529 du fichier DistributedSubDomainDeflation.h.

◆ tag_exc_lnnz

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
const int Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::tag_exc_lnnz = 5011
staticprivate

Définition à la ligne 530 du fichier DistributedSubDomainDeflation.h.

◆ tag_exc_vals

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
const int Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::tag_exc_vals = 2011
staticprivate

Définition à la ligne 527 du fichier DistributedSubDomainDeflation.h.

◆ Z

template<class LocalPrecond, class IterativeSolver, class DirectSolver = DistributedSkylineLUDirectSolver<typename LocalPrecond::backend_type::value_type>>
std::vector<std::shared_ptr<vector> > Arcane::Alina::DistributedSubDomainDeflation< LocalPrecond, IterativeSolver, DirectSolver >::Z
private

Définition à la ligne 541 du fichier DistributedSubDomainDeflation.h.


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