Distributed wrapper for Eigen::SparseLU solver. Plus de détails...
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 |
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< Solver > | S |
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.
|
private |
Définition à la ligne 51 du fichier DistributedEigenSparseLUDirectSolver.h.
| typedef CSRMatrix<value_type> Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::build_matrix |
Définition à la ligne 59 du fichier DistributedEigenSparseLUDirectSolver.h.
| using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::EigenMatrix = Eigen::SparseMatrix<value_type, Eigen::ColMajor, int> |
Définition à la ligne 56 du fichier DistributedEigenSparseLUDirectSolver.h.
| typedef Solver::params Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::params |
Définition à la ligne 58 du fichier DistributedEigenSparseLUDirectSolver.h.
| using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::Solver = EigenSolver<Eigen::SparseLU<EigenMatrix>> |
Définition à la ligne 57 du fichier DistributedEigenSparseLUDirectSolver.h.
| using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::value_type = Backend::value_type |
Définition à la ligne 55 du fichier DistributedEigenSparseLUDirectSolver.h.
|
inline |
Constructor.
Définition à la ligne 63 du fichier DistributedEigenSparseLUDirectSolver.h.
|
inlinestatic |
Définition à la ligne 70 du fichier DistributedEigenSparseLUDirectSolver.h.
|
inline |
Définition à la ligne 75 du fichier DistributedEigenSparseLUDirectSolver.h.
|
inline |
Définition à la ligne 80 du fichier DistributedEigenSparseLUDirectSolver.h.
|
inline |
Solves the problem for the given right-hand side.
| rhs | The right-hand side. |
| x | The solution. |
Définition à la ligne 92 du fichier DistributedEigenSparseLUDirectSolver.h.
|
private |
Définition à la ligne 99 du fichier DistributedEigenSparseLUDirectSolver.h.
|
private |
Définition à la ligne 100 du fichier DistributedEigenSparseLUDirectSolver.h.