HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Class to invoke the Pastix LU solver. More...
#include <PastixInterface.hpp>
Public Types | |
typedef _MatrixType | MatrixType |
typedef PastixBase< PastixLU< MatrixType > > | Base |
typedef Base::ColSpMatrix | ColSpMatrix |
typedef MatrixType::StorageIndex | StorageIndex |
![]() | |
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) |
void | init (double eps_refinement=-1.0, double eps_ctrl=-1.0) |
![]() | |
PastixBase () | |
~PastixBase () | |
bool | _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &x) 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. | |
void | init (double eps_refinement=-1.0, double eps_ctrl=-1.0) |
Protected Member Functions | |
void | grabMatrix (const MatrixType &matrix, ColSpMatrix &out) |
![]() | |
void | analyzePattern (ColSpMatrix &mat) |
void | factorize (ColSpMatrix &mat) |
void | clean () |
void | compute (ColSpMatrix &mat) |
Protected Attributes | |
ColSpMatrix | m_transposedStructure |
bool | m_structureIsUptodate |
Array< int, IPARM_SIZE, 1 > | m_iparm |
Array< double, DPARM_SIZE, 1 > | m_dparm |
![]() | |
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 |
Additional Inherited Members | |
![]() | |
typedef SparseSolverBase< PastixLU< _MatrixType > > | Base |
Class to invoke the Pastix LU solver.
After the class is instantianted, use iparm(IPARM_VERBOSE)=PastixVerboseNo or PastixVerboseYes to get more verbose output from pastix
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.
_MatrixType | the type of the sparse matrix A, it must be a SparseMatrix<> |
IsStrSym | Indicates 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 |
|
mutableprotected |
|
mutableprotected |