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

Distributed Schur complement pressure correction preconditioner. Plus de détails...

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

+ Graphe de collaboration de Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >:

Classes

struct  params
 

Types publics

using backend_type = detail::common_scalar_backend<USolverBackendType, PSolverBackendType>::type
 
using BackendType = backend_type
 
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 backend_type::params backend_params
 
typedef DistributedMatrix< backend_type > matrix
 
typedef BuiltinBackend< value_type >::matrix build_matrix
 

Fonctions membres publiques

template<class Matrix>
 DistributedSchurPressureCorrection (mpi_communicator comm, const Matrix &K, const params &prm=params(), const backend_params &bprm=backend_params())
 
 DistributedSchurPressureCorrection (mpi_communicator comm, std::shared_ptr< matrix > K, const params &prm=params(), const backend_params &bprm=backend_params())
 
void init (const backend_params &bprm)
 
std::shared_ptr< matrixsystem_matrix_ptr () const
 
const matrixsystem_matrix () const
 
template<class Vec1, class Vec2>
void apply (const Vec1 &rhs, Vec2 &&x) const
 
template<class Alpha, class Vec1, class Beta, class Vec2>
void spmv (Alpha alpha, const Vec1 &x, Beta beta, Vec2 &y) const
 

Attributs publics

params prm
 

Types privés

using USolverBackendType = typename USolver::backend_type
 
using PSolverBackendType = typename PSolver::backend_type
 
typedef CommunicationPattern< backend_type > CommPattern
 

Fonctions membres privées

void report (const std::string &, const SolverResult &) const
 

Attributs privés

mpi_communicator comm
 
std::shared_ptr< bmatrix > x2p
 
std::shared_ptr< bmatrix > x2u
 
std::shared_ptr< bmatrix > p2x
 
std::shared_ptr< bmatrix > u2x
 
std::shared_ptr< matrixK
 
std::shared_ptr< matrixKpu
 
std::shared_ptr< matrixKup
 
std::shared_ptr< vector > rhs_u
 
std::shared_ptr< vector > rhs_p
 
std::shared_ptr< vector > u
 
std::shared_ptr< vector > p
 
std::shared_ptr< vector > tmp
 
std::shared_ptr< typename backend_type::matrix_diagonal > M
 
std::shared_ptr< USolver > U
 
std::shared_ptr< PSolver > P
 

Description détaillée

template<class USolver, class PSolver>
class Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >

Distributed Schur complement pressure correction preconditioner.

Définition à la ligne 43 du fichier DistributedSchurPressureCorrection.h.

Documentation des définitions de type membres

◆ backend_params

template<class USolver, class PSolver>
typedef backend_type::params Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::backend_params

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

◆ backend_type

template<class USolver, class PSolver>
using Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::backend_type = detail::common_scalar_backend<USolverBackendType, PSolverBackendType>::type

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

◆ BackendType

template<class USolver, class PSolver>
using Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::BackendType = backend_type

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

◆ bmatrix

template<class USolver, class PSolver>
typedef backend_type::matrix Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::bmatrix

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

◆ build_matrix

template<class USolver, class PSolver>
typedef BuiltinBackend<value_type>::matrix Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::build_matrix

Définition à la ligne 64 du fichier DistributedSchurPressureCorrection.h.

◆ CommPattern

template<class USolver, class PSolver>
typedef CommunicationPattern<backend_type> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::CommPattern
private

Définition à la ligne 633 du fichier DistributedSchurPressureCorrection.h.

◆ matrix

template<class USolver, class PSolver>
typedef DistributedMatrix<backend_type> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::matrix

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

◆ PSolverBackendType

template<class USolver, class PSolver>
using Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::PSolverBackendType = typename PSolver::backend_type
private

Définition à la ligne 46 du fichier DistributedSchurPressureCorrection.h.

◆ scalar_type

template<class USolver, class PSolver>
typedef math::scalar_of<value_type>::type Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::scalar_type

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

◆ USolverBackendType

template<class USolver, class PSolver>
using Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::USolverBackendType = typename USolver::backend_type
private

Définition à la ligne 45 du fichier DistributedSchurPressureCorrection.h.

◆ value_type

template<class USolver, class PSolver>
typedef backend_type::value_type Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::value_type

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

◆ vector

template<class USolver, class PSolver>
typedef backend_type::vector Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::vector

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

Documentation des constructeurs et destructeur

◆ DistributedSchurPressureCorrection() [1/2]

template<class USolver, class PSolver>
template<class Matrix>
Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::DistributedSchurPressureCorrection ( mpi_communicator comm,
const Matrix & K,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 162 du fichier DistributedSchurPressureCorrection.h.

◆ DistributedSchurPressureCorrection() [2/2]

template<class USolver, class PSolver>
Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::DistributedSchurPressureCorrection ( mpi_communicator comm,
std::shared_ptr< matrix > K,
const params & prm = params(),
const backend_params & bprm = backend_params() )
inline

Définition à la ligne 173 du fichier DistributedSchurPressureCorrection.h.

Documentation des fonctions membres

◆ apply()

template<class USolver, class PSolver>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::apply ( const Vec1 & rhs,
Vec2 && x ) const
inline

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

◆ init()

template<class USolver, class PSolver>
void Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::init ( const backend_params & bprm)
inline

Définition à la ligne 184 du fichier DistributedSchurPressureCorrection.h.

◆ report()

template<class USolver, class PSolver>
void Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::report ( const std::string & ,
const SolverResult &  ) const
inlineprivate

Définition à la ligne 652 du fichier DistributedSchurPressureCorrection.h.

◆ spmv()

template<class USolver, class PSolver>
template<class Alpha, class Vec1, class Beta, class Vec2>
void Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::spmv ( Alpha alpha,
const Vec1 & x,
Beta beta,
Vec2 & y ) const
inline

Définition à la ligne 605 du fichier DistributedSchurPressureCorrection.h.

◆ system_matrix()

template<class USolver, class PSolver>
const matrix & Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::system_matrix ( ) const
inline

Définition à la ligne 542 du fichier DistributedSchurPressureCorrection.h.

◆ system_matrix_ptr()

template<class USolver, class PSolver>
std::shared_ptr< matrix > Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::system_matrix_ptr ( ) const
inline

Définition à la ligne 537 du fichier DistributedSchurPressureCorrection.h.

Documentation des données membres

◆ comm

template<class USolver, class PSolver>
mpi_communicator Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::comm
private

Définition à la ligne 634 du fichier DistributedSchurPressureCorrection.h.

◆ K

template<class USolver, class PSolver>
std::shared_ptr<matrix> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::K
private

Définition à la ligne 637 du fichier DistributedSchurPressureCorrection.h.

◆ Kpu

template<class USolver, class PSolver>
std::shared_ptr<matrix> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::Kpu
private

Définition à la ligne 637 du fichier DistributedSchurPressureCorrection.h.

◆ Kup

template<class USolver, class PSolver>
std::shared_ptr<matrix> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::Kup
private

Définition à la ligne 637 du fichier DistributedSchurPressureCorrection.h.

◆ M

template<class USolver, class PSolver>
std::shared_ptr<typename backend_type::matrix_diagonal> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::M
private

Définition à la ligne 639 du fichier DistributedSchurPressureCorrection.h.

◆ P

template<class USolver, class PSolver>
std::shared_ptr<PSolver> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::P
private

Définition à la ligne 642 du fichier DistributedSchurPressureCorrection.h.

◆ p

template<class USolver, class PSolver>
std::shared_ptr<vector> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::p
private

Définition à la ligne 638 du fichier DistributedSchurPressureCorrection.h.

◆ p2x

template<class USolver, class PSolver>
std::shared_ptr<bmatrix> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::p2x
private

Définition à la ligne 636 du fichier DistributedSchurPressureCorrection.h.

◆ prm

template<class USolver, class PSolver>
params Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::prm

Définition à la ligne 629 du fichier DistributedSchurPressureCorrection.h.

◆ rhs_p

template<class USolver, class PSolver>
std::shared_ptr<vector> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::rhs_p
private

Définition à la ligne 638 du fichier DistributedSchurPressureCorrection.h.

◆ rhs_u

template<class USolver, class PSolver>
std::shared_ptr<vector> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::rhs_u
private

Définition à la ligne 638 du fichier DistributedSchurPressureCorrection.h.

◆ tmp

template<class USolver, class PSolver>
std::shared_ptr<vector> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::tmp
private

Définition à la ligne 638 du fichier DistributedSchurPressureCorrection.h.

◆ U

template<class USolver, class PSolver>
std::shared_ptr<USolver> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::U
private

Définition à la ligne 641 du fichier DistributedSchurPressureCorrection.h.

◆ u

template<class USolver, class PSolver>
std::shared_ptr<vector> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::u
private

Définition à la ligne 638 du fichier DistributedSchurPressureCorrection.h.

◆ u2x

template<class USolver, class PSolver>
std::shared_ptr<bmatrix> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::u2x
private

Définition à la ligne 636 du fichier DistributedSchurPressureCorrection.h.

◆ x2p

template<class USolver, class PSolver>
std::shared_ptr<bmatrix> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::x2p
private

Définition à la ligne 636 du fichier DistributedSchurPressureCorrection.h.

◆ x2u

template<class USolver, class PSolver>
std::shared_ptr<bmatrix> Arcane::Alina::DistributedSchurPressureCorrection< USolver, PSolver >::x2u
private

Définition à la ligne 636 du fichier DistributedSchurPressureCorrection.h.


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