NDDEM
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Eigen::PastixLU< _MatrixType, IsStrSym > Class Template Reference

Interface to the PaStix solver. More...

#include <PaStiXSupport.h>

+ Inheritance diagram for Eigen::PastixLU< _MatrixType, IsStrSym >:

Public Types

typedef _MatrixType MatrixType
 
typedef PastixBase< PastixLU< MatrixType > > Base
 
typedef Base::ColSpMatrix ColSpMatrix
 
typedef MatrixType::StorageIndex StorageIndex
 
- Public Types inherited from Eigen::PastixBase< PastixLU< _MatrixType > >
enum  
 
typedef internal::pastix_traits< PastixLU< _MatrixType > >::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

 PastixLU ()
 
 PastixLU (const MatrixType &matrix)
 
void compute (const MatrixType &matrix)
 
void analyzePattern (const MatrixType &matrix)
 
void factorize (const MatrixType &matrix)
 
- Public Member Functions inherited from Eigen::PastixBase< PastixLU< _MatrixType > >
 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...
 
- Public Member Functions inherited from Eigen::SparseSolverBase< Derived >
 SparseSolverBase ()
 
 ~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)
 
- Protected Member Functions inherited from Eigen::PastixBase< PastixLU< _MatrixType > >
void init ()
 
void analyzePattern (ColSpMatrix &mat)
 
void factorize (ColSpMatrix &mat)
 
void clean ()
 
void compute (ColSpMatrix &mat)
 
PastixLU< _MatrixType > & derived ()
 
const PastixLU< _MatrixType > & derived () const
 

Protected Attributes

ColSpMatrix m_transposedStructure
 
bool m_structureIsUptodate
 
Array< int, IPARM_SIZE, 1 > m_iparm
 
Array< double, DPARM_SIZE, 1 > m_dparm
 
- Protected Attributes inherited from Eigen::PastixBase< PastixLU< _MatrixType > >
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
 
- Protected Attributes inherited from Eigen::SparseSolverBase< Derived >
bool m_isInitialized
 

Additional Inherited Members

- Protected Types inherited from Eigen::PastixBase< PastixLU< _MatrixType > >
typedef SparseSolverBase< PastixLU< _MatrixType > > Base
 

Detailed Description

template<typename _MatrixType, bool IsStrSym>
class Eigen::PastixLU< _MatrixType, IsStrSym >

Interface to the PaStix solver.

Sparse direct LU solver based on PaStiX library.

This class is used to solve the linear systems A.X = B via the PaStix library. The matrix can be either real or complex, symmetric or not.

See also
TutorialSparseDirectSolvers

This class is used to solve the linear systems A.X = B with a supernodal LU factorization in the PaStiX library. The matrix A should be squared and nonsingular PaStiX requires that the matrix A has a symmetric structural pattern. This interface can symmetrize the input matrix otherwise. The vectors or matrices X and B can be either dense or sparse.

Template Parameters
_MatrixTypethe type of the sparse matrix A, it must be a SparseMatrix<>
IsStrSymIndicates if the input matrix has a symmetric pattern, default is false NOTE : Note that if the analysis and factorization phase are called separately, the input matrix will be symmetrized at each call, hence it is advised to symmetrize the matrix in a end-user program and set IsStrSym to true

\implsparsesolverconcept

See also
TutorialSparseSolverConcept, class SparseLU

Member Typedef Documentation

◆ Base

template<typename _MatrixType , bool IsStrSym>
typedef PastixBase<PastixLU<MatrixType> > Eigen::PastixLU< _MatrixType, IsStrSym >::Base

◆ ColSpMatrix

template<typename _MatrixType , bool IsStrSym>
typedef Base::ColSpMatrix Eigen::PastixLU< _MatrixType, IsStrSym >::ColSpMatrix

◆ MatrixType

template<typename _MatrixType , bool IsStrSym>
typedef _MatrixType Eigen::PastixLU< _MatrixType, IsStrSym >::MatrixType

◆ StorageIndex

template<typename _MatrixType , bool IsStrSym>
typedef MatrixType::StorageIndex Eigen::PastixLU< _MatrixType, IsStrSym >::StorageIndex

Constructor & Destructor Documentation

◆ PastixLU() [1/2]

template<typename _MatrixType , bool IsStrSym>
Eigen::PastixLU< _MatrixType, IsStrSym >::PastixLU ( )
inline

◆ PastixLU() [2/2]

template<typename _MatrixType , bool IsStrSym>
Eigen::PastixLU< _MatrixType, IsStrSym >::PastixLU ( const MatrixType matrix)
inlineexplicit

Member Function Documentation

◆ analyzePattern()

template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::analyzePattern ( const MatrixType matrix)
inline

Compute the LU symbolic factorization of matrix using its sparsity pattern. Several ordering methods can be used at this step. See the PaStiX user's manual. The result of this operation can be used with successive matrices having the same pattern as matrix

See also
factorize()

◆ compute()

template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::compute ( const MatrixType matrix)
inline

Compute the LU supernodal factorization of matrix. iparm and dparm can be used to tune the PaStiX parameters. see the PaStiX user's manual

See also
analyzePattern() factorize()

◆ factorize()

template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::factorize ( const MatrixType matrix)
inline

Compute the LU supernodal factorization of matrix WARNING The matrix matrix should have the same structural pattern as the same used in the analysis phase.

See also
analyzePattern()

◆ grabMatrix()

template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::grabMatrix ( const MatrixType matrix,
ColSpMatrix out 
)
inlineprotected

◆ init()

template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::init ( )
inlineprotected

Member Data Documentation

◆ m_dparm

template<typename _MatrixType , bool IsStrSym>
Array<double,DPARM_SIZE,1> Eigen::PastixBase< Derived >::m_dparm
mutableprotected

◆ m_iparm

template<typename _MatrixType , bool IsStrSym>
Array<int,IPARM_SIZE,1> Eigen::PastixBase< Derived >::m_iparm
mutableprotected

◆ m_structureIsUptodate

template<typename _MatrixType , bool IsStrSym>
bool Eigen::PastixLU< _MatrixType, IsStrSym >::m_structureIsUptodate
protected

◆ m_transposedStructure

template<typename _MatrixType , bool IsStrSym>
ColSpMatrix Eigen::PastixLU< _MatrixType, IsStrSym >::m_transposedStructure
protected

The documentation for this class was generated from the following file: