Distributed wrapper for Eigen::SparseLU solver. More...
Public Types | |
| 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 |
| Public Types inherited from 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 |
Public Member Functions | |
| 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. | |
| Public Member Functions inherited from 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 |
Static Public Member Functions | |
| static size_t | coarse_enough () |
Private Types | |
| using | Base = DistributedDirectSolverBase<Backend, DistributedEigenSparseLUDirectSolver<Backend>> |
Private Attributes | |
| 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.
Definition at line 48 of file DistributedEigenSparseLUDirectSolver.h.
|
private |
Definition at line 51 of file DistributedEigenSparseLUDirectSolver.h.
| typedef CSRMatrix<value_type> Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::build_matrix |
Definition at line 59 of file DistributedEigenSparseLUDirectSolver.h.
| using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::EigenMatrix = Eigen::SparseMatrix<value_type, Eigen::ColMajor, int> |
Definition at line 56 of file DistributedEigenSparseLUDirectSolver.h.
| typedef Solver::params Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::params |
Definition at line 58 of file DistributedEigenSparseLUDirectSolver.h.
| using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::Solver = EigenSolver<Eigen::SparseLU<EigenMatrix>> |
Definition at line 57 of file DistributedEigenSparseLUDirectSolver.h.
| using Arcane::Alina::DistributedEigenSparseLUDirectSolver< Backend >::value_type = Backend::value_type |
Definition at line 55 of file DistributedEigenSparseLUDirectSolver.h.
|
inline |
Constructor.
Definition at line 63 of file DistributedEigenSparseLUDirectSolver.h.
|
inlinestatic |
Definition at line 70 of file DistributedEigenSparseLUDirectSolver.h.
|
inline |
Definition at line 75 of file DistributedEigenSparseLUDirectSolver.h.
|
inline |
Definition at line 80 of file DistributedEigenSparseLUDirectSolver.h.
|
inline |
Solves the problem for the given right-hand side.
| rhs | The right-hand side. |
| x | The solution. |
Definition at line 92 of file DistributedEigenSparseLUDirectSolver.h.
|
private |
Definition at line 99 of file DistributedEigenSparseLUDirectSolver.h.
|
private |
Definition at line 100 of file DistributedEigenSparseLUDirectSolver.h.