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

Distributed wrapper for Eigen::SparseLU solver. Plus de détails...

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

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

Types publics

using value_type = Backend::value_type
 
using EigenMatrix = Eigen::SparseMatrix<value_type, Eigen::ColMajor, int>
 
using Solver = EigenSolver<Eigen::SparseLU<EigenMatrix>>
 
typedef Solver::params params
 
typedef CSRMatrix< value_type > build_matrix
 
- Types publics hérités de Arcane::Alina::DistributedDirectSolverBase< Backend, DistributedEigenSparseLUDirectSolver< Backend > >
typedef Backend::value_type value_type
 
typedef math::scalar_of< value_type >::type scalar_type
 
typedef math::rhs_of< value_type >::type rhs_type
 
using col_type
 
using ptr_type
 
typedef CSRMatrix< value_type, col_type, ptr_type > build_matrix
 

Fonctions membres publiques

template<class Matrix>
 DistributedEigenSparseLUDirectSolver (mpi_communicator comm, const Matrix &A, const params &prm=params())
 Constructor.
 
int comm_size (int) const
 
void init (mpi_communicator, const build_matrix &A)
 
template<class Vec1, class Vec2>
void solve (const Vec1 &rhs, Vec2 &x) const
 Solves the problem for the given right-hand side.
 
- Fonctions membres publiques hérités de Arcane::Alina::DistributedDirectSolverBase< Backend, DistributedEigenSparseLUDirectSolver< Backend > >
void init (mpi_communicator comm, const build_matrix &Astrip)
 
void init (mpi_communicator comm, const DistributedMatrix< B > &A)
 
DistributedEigenSparseLUDirectSolver< Backend > & solver ()
 
const DistributedEigenSparseLUDirectSolver< Backend > & solver () const
 
void operator() (const VecF &f, VecX &x) const
 
void init (mpi_communicator comm, const build_matrix &Astrip)
 
void init (mpi_communicator comm, const DistributedMatrix< B > &A)
 
DistributedEigenSparseLUDirectSolver< Backend > & solver ()
 
const DistributedEigenSparseLUDirectSolver< Backend > & solver () const
 
void operator() (const VecF &f, VecX &x) const
 

Fonctions membres publiques statiques

static size_t coarse_enough ()
 

Types privés

using Base = DistributedDirectSolverBase<Backend, DistributedEigenSparseLUDirectSolver<Backend>>
 

Attributs privés

params prm
 
std::shared_ptr< SolverS
 

Description détaillée

template<typename Backend>
class Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >

Distributed wrapper for Eigen::SparseLU solver.

This is a wrapper around Eigen SparseLU solver that provides a distributed direct solver interface but always works sequentially.

Définition à la ligne 48 du fichier DistributedEigenSparseLUDirectSolver.h.

Documentation des définitions de type membres

◆ Base

◆ build_matrix

template<typename Backend>
typedef CSRMatrix<value_type> Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::build_matrix

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

◆ EigenMatrix

template<typename Backend>
using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::EigenMatrix = Eigen::SparseMatrix<value_type, Eigen::ColMajor, int>

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

◆ params

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

◆ Solver

template<typename Backend>
using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::Solver = EigenSolver<Eigen::SparseLU<EigenMatrix>>

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

◆ value_type

template<typename Backend>
using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::value_type = Backend::value_type

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

Documentation des constructeurs et destructeur

◆ DistributedEigenSparseLUDirectSolver()

template<typename Backend>
template<class Matrix>
Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::DistributedEigenSparseLUDirectSolver ( mpi_communicator comm,
const Matrix & A,
const params & prm = params() )
inline

Constructor.

Définition à la ligne 63 du fichier DistributedEigenSparseLUDirectSolver.h.

Documentation des fonctions membres

◆ coarse_enough()

template<typename Backend>
static size_t Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::coarse_enough ( )
inlinestatic

Définition à la ligne 70 du fichier DistributedEigenSparseLUDirectSolver.h.

◆ comm_size()

template<typename Backend>
int Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::comm_size ( int ) const
inline

Définition à la ligne 75 du fichier DistributedEigenSparseLUDirectSolver.h.

◆ init()

template<typename Backend>
void Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::init ( mpi_communicator ,
const build_matrix & A )
inline

Définition à la ligne 80 du fichier DistributedEigenSparseLUDirectSolver.h.

◆ solve()

template<typename Backend>
template<class Vec1, class Vec2>
void Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::solve ( const Vec1 & rhs,
Vec2 & x ) const
inline

Solves the problem for the given right-hand side.

Paramètres
rhsThe right-hand side.
xThe solution.

Définition à la ligne 92 du fichier DistributedEigenSparseLUDirectSolver.h.

Documentation des données membres

◆ prm

Définition à la ligne 99 du fichier DistributedEigenSparseLUDirectSolver.h.

◆ S

template<typename Backend>
std::shared_ptr<Solver> Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::S
private

Définition à la ligne 100 du fichier DistributedEigenSparseLUDirectSolver.h.


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