![]() |
Prusa Slicer 2.6.0
|
Interface to the PaStix solver. More...
#include <src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h>
Inheritance diagram for Eigen::PastixLU< _MatrixType, IsStrSym >:
Collaboration diagram for Eigen::PastixLU< _MatrixType, IsStrSym >: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::Scalar | Scalar |
| typedef MatrixType::RealScalar | RealScalar |
| typedef Matrix< Scalar, Dynamic, 1 > | Vector |
Public Member Functions | |
| PastixLU () | |
| PastixLU (const MatrixType &matrix) | |
| void | compute (const MatrixType &matrix) |
| void | analyzePattern (const MatrixType &matrix) |
| void | factorize (const MatrixType &matrix) |
| 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. | |
| 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 |
Protected Member Functions | |
| void | init () |
| void | grabMatrix (const MatrixType &matrix, ColSpMatrix &out) |
| 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 |
| int | m_initisOk |
| int | m_analysisIsOk |
| int | m_factorizationIsOk |
| ComputationInfo | m_info |
| pastix_data_t * | m_pastixdata |
| int | m_comm |
| Matrix< StorageIndex, Dynamic, 1 > | m_perm |
| Matrix< StorageIndex, Dynamic, 1 > | m_invp |
| int | m_size |
| bool | m_isInitialized |
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.
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 |
\implsparsesolverconcept
|
inherited |
| typedef PastixBase<PastixLU<MatrixType> > Eigen::PastixLU< _MatrixType, IsStrSym >::Base |
| typedef Base::ColSpMatrix Eigen::PastixLU< _MatrixType, IsStrSym >::ColSpMatrix |
| typedef _MatrixType Eigen::PastixLU< _MatrixType, IsStrSym >::MatrixType |
|
inherited |
|
inherited |
| typedef MatrixType::StorageIndex Eigen::PastixLU< _MatrixType, IsStrSym >::StorageIndex |
|
inherited |
|
inherited |
|
inline |
References Eigen::PastixLU< _MatrixType, IsStrSym >::init().
Here is the call graph for this function:
|
inlineexplicit |
References Eigen::PastixLU< _MatrixType, IsStrSym >::compute(), and Eigen::PastixLU< _MatrixType, IsStrSym >::init().
Here is the call graph for this function:
|
inherited |
|
inlineinherited |
|
protectedinherited |
|
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
References Eigen::PastixBase< Derived >::analyzePattern(), Eigen::PastixLU< _MatrixType, IsStrSym >::grabMatrix(), and Eigen::PastixLU< _MatrixType, IsStrSym >::m_structureIsUptodate.
Here is the call graph for this function:
|
inlineprotectedinherited |
|
inlineinherited |
|
protectedinherited |
|
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
References Eigen::PastixBase< Derived >::compute(), Eigen::PastixLU< _MatrixType, IsStrSym >::grabMatrix(), and Eigen::PastixLU< _MatrixType, IsStrSym >::m_structureIsUptodate.
Referenced by Eigen::PastixLU< _MatrixType, IsStrSym >::PastixLU().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Returns a reference to the double vector DPARM of PaStiX parameters The statistics related to the different phases of factorization and solve are saved here as well
|
inlineinherited |
|
protectedinherited |
|
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.
References Eigen::PastixBase< Derived >::factorize(), and Eigen::PastixLU< _MatrixType, IsStrSym >::grabMatrix().
Here is the call graph for this function:
|
inlineprotected |
References Eigen::internal::c_to_fortran_numbering(), Eigen::PastixLU< _MatrixType, IsStrSym >::m_structureIsUptodate, Eigen::PastixLU< _MatrixType, IsStrSym >::m_transposedStructure, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::outerSize(), and Eigen::SparseMatrixBase< Derived >::transpose().
Referenced by Eigen::PastixLU< _MatrixType, IsStrSym >::analyzePattern(), Eigen::PastixLU< _MatrixType, IsStrSym >::compute(), and Eigen::PastixLU< _MatrixType, IsStrSym >::factorize().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
Reports whether previous computation was successful.
Success if computation was succesful, NumericalIssue if the PaStiX reports a problem InvalidInput if the input matrix is invalid
|
inlineprotected |
References Eigen::PastixLU< _MatrixType, IsStrSym >::m_iparm, and Eigen::PastixLU< _MatrixType, IsStrSym >::m_structureIsUptodate.
Referenced by Eigen::PastixLU< _MatrixType, IsStrSym >::PastixLU(), and Eigen::PastixLU< _MatrixType, IsStrSym >::PastixLU().
Here is the caller graph for this function:
|
inlineinherited |
Returns a reference to the integer vector IPARM of PaStiX parameters to modify the default parameters. The statistics related to the different phases of factorization and solve are saved here as well
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
References Eigen::SparseSolverBase< Derived >::derived(), eigen_assert, and Eigen::SparseSolverBase< Derived >::m_isInitialized.
Referenced by igl::embree::bone_heat(), igl::Frame_field_deformer::compute_optimal_positions(), igl::eigs(), igl::copyleft::comiso::FrameInterpolator::interpolateSymmetric(), igl::slim::solve_weighted_arap(), and igl::copyleft::comiso::NRosyField::solveNoRoundings().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotected |
|
protectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotected |
Referenced by Eigen::PastixLU< _MatrixType, IsStrSym >::init().
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protected |
|
protected |
Referenced by Eigen::PastixLU< _MatrixType, IsStrSym >::grabMatrix().