![]() |
|
A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library. More...
#include <PaStiXSupport.h>
Public Types | |
enum | { UpLo = UpLo_ } |
typedef MatrixType_ | MatrixType |
typedef PastixBase< PastixLDLT< MatrixType, UpLo_ > > | Base |
typedef Base::ColSpMatrix | ColSpMatrix |
![]() | |
enum | |
typedef internal::pastix_traits< PastixLDLT< MatrixType_, UpLo_ > >::MatrixType | MatrixType_ |
typedef MatrixType_ | MatrixType |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType::StorageIndex | StorageIndex |
typedef Matrix< Scalar, Dynamic, 1 > | Vector |
typedef SparseMatrix< Scalar, ColMajor > | ColSpMatrix |
Public Member Functions | |
PastixLDLT () | |
PastixLDLT (const MatrixType &matrix) | |
void | compute (const MatrixType &matrix) |
void | analyzePattern (const MatrixType &matrix) |
void | factorize (const MatrixType &matrix) |
![]() | |
PastixBase () | |
~PastixBase () | |
bool | _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &x) const |
void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
Array< StorageIndex, IPARM_SIZE, 1 > & | iparm () |
int & | iparm (int idxparam) |
Array< double, DPARM_SIZE, 1 > & | dparm () |
double & | dparm (int idxparam) |
Index | cols () const |
Index | rows () const |
ComputationInfo | info () const |
Reports whether previous computation was successful. More... | |
![]() | |
SparseSolverBase () | |
SparseSolverBase (SparseSolverBase &&other) | |
~SparseSolverBase () | |
Derived & | derived () |
const Derived & | derived () const |
template<typename Rhs > | |
const Solve< Derived, Rhs > | solve (const MatrixBase< Rhs > &b) const |
template<typename Rhs > | |
const Solve< Derived, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
template<typename Rhs , typename Dest > | |
void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
Protected Member Functions | |
void | init () |
void | grabMatrix (const MatrixType &matrix, ColSpMatrix &out) |
![]() | |
void | init () |
void | analyzePattern (ColSpMatrix &mat) |
void | factorize (ColSpMatrix &mat) |
void | clean () |
void | compute (ColSpMatrix &mat) |
PastixLDLT< MatrixType_, UpLo_ > & | derived () |
const PastixLDLT< MatrixType_, UpLo_ > & | derived () const |
Protected Attributes | |
Array< int, IPARM_SIZE, 1 > | m_iparm |
![]() | |
int | m_initisOk |
int | m_analysisIsOk |
int | m_factorizationIsOk |
ComputationInfo | m_info |
pastix_data_t * | m_pastixdata |
int | m_comm |
Array< int, IPARM_SIZE, 1 > | m_iparm |
Array< double, DPARM_SIZE, 1 > | m_dparm |
Matrix< StorageIndex, Dynamic, 1 > | m_perm |
Matrix< StorageIndex, Dynamic, 1 > | m_invp |
int | m_size |
bool | m_isInitialized |
![]() | |
bool | m_isInitialized |
Additional Inherited Members | |
![]() | |
typedef SparseSolverBase< PastixLDLT< MatrixType_, UpLo_ > > | Base |
A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library.
This class is used to solve the linear systems A.X = B via a LDL^T supernodal Cholesky factorization available in the PaStiX library. The matrix A should be symmetric and positive definite WARNING Selfadjoint complex matrices are not supported in the current version of PaStiX The vectors or matrices X and B can be either dense or sparse
MatrixType | the type of the sparse matrix A, it must be a SparseMatrix<> |
UpLo | The part of the matrix to use : Lower or Upper. The default is Lower as required by PaStiX |
\implsparsesolverconcept
typedef PastixBase<PastixLDLT<MatrixType, UpLo_> > Eigen::PastixLDLT< MatrixType_, UpLo_ >::Base |
typedef Base::ColSpMatrix Eigen::PastixLDLT< MatrixType_, UpLo_ >::ColSpMatrix |
typedef MatrixType_ Eigen::PastixLDLT< MatrixType_, UpLo_ >::MatrixType |
|
inline |
References Eigen::PastixLDLT< MatrixType_, UpLo_ >::init().
|
inlineexplicit |
References Eigen::PastixLDLT< MatrixType_, UpLo_ >::compute(), Eigen::PastixLDLT< MatrixType_, UpLo_ >::init(), and matrix().
|
inline |
Compute the LDL^T symbolic factorization of matrix
using its sparsity pattern The result of this operation can be used with successive matrices having the same pattern as matrix
References Eigen::PastixBase< Derived >::analyzePattern(), Eigen::PastixLDLT< MatrixType_, UpLo_ >::grabMatrix(), and matrix().
|
inline |
Compute the L and D factors of the LDL^T factorization of matrix
References Eigen::PastixBase< Derived >::compute(), Eigen::PastixLDLT< MatrixType_, UpLo_ >::grabMatrix(), and matrix().
Referenced by Eigen::PastixLDLT< MatrixType_, UpLo_ >::PastixLDLT().
|
inline |
Compute the LDL^T supernodal numerical factorization of matrix
References Eigen::PastixBase< Derived >::factorize(), Eigen::PastixLDLT< MatrixType_, UpLo_ >::grabMatrix(), and matrix().
|
inlineprotected |
References Eigen::internal::c_to_fortran_numbering(), matrix(), and out().
Referenced by Eigen::PastixLDLT< MatrixType_, UpLo_ >::analyzePattern(), Eigen::PastixLDLT< MatrixType_, UpLo_ >::compute(), and Eigen::PastixLDLT< MatrixType_, UpLo_ >::factorize().
|
inlineprotected |
References Eigen::PastixLDLT< MatrixType_, UpLo_ >::m_iparm.
Referenced by Eigen::PastixLDLT< MatrixType_, UpLo_ >::PastixLDLT().
|
mutableprotected |
Referenced by Eigen::PastixLDLT< MatrixType_, UpLo_ >::init().