A sparse direct incomplete LU factorization and solver based on the SuperLU library. More...
#include <SuperLUSupport.h>
A sparse direct incomplete LU factorization and solver based on the SuperLU library.
This class allows to solve for an approximate solution of A.X = B sparse linear problems via an incomplete LU factorization using the SuperLU library. This class is aimed to be used as a preconditioner of the iterative linear solvers.
_MatrixType | the type of the sparse matrix A, it must be a SparseMatrix<> |
typedef SuperLUBase<_MatrixType,SuperILU> Base |
typedef Base::Index Index |
Reimplemented from SuperLUBase< _MatrixType, SuperILU< _MatrixType > >.
typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType [inherited] |
typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType [inherited] |
typedef SparseMatrix<Scalar> LUMatrixType [inherited] |
typedef _MatrixType MatrixType |
Reimplemented from SuperLUBase< _MatrixType, SuperILU< _MatrixType > >.
typedef Base::RealScalar RealScalar |
Reimplemented from SuperLUBase< _MatrixType, SuperILU< _MatrixType > >.
typedef Base::Scalar Scalar |
Reimplemented from SuperLUBase< _MatrixType, SuperILU< _MatrixType > >.
SuperILU | ( | ) | [inline] |
References SuperILU< _MatrixType >::init().
SuperILU | ( | const MatrixType & | matrix | ) | [inline] |
~SuperILU | ( | ) | [inline] |
void analyzePattern | ( | const MatrixType & | matrix | ) | [inline] |
Performs a symbolic decomposition on the sparcity of matrix.
This function is particularly useful when solving for several problems having the same structure.
Reimplemented from SuperLUBase< _MatrixType, SuperILU< _MatrixType > >.
References SuperLUBase< _MatrixType, Derived >::analyzePattern().
void clearFactors | ( | ) | [inline, protected, inherited] |
void compute | ( | const MatrixType & | matrix | ) | [inline, inherited] |
Computes the sparse Cholesky decomposition of matrix
References SuperLUBase< _MatrixType, Derived >::derived().
Referenced by SuperILU< _MatrixType >::SuperILU().
void dumpMemory | ( | Stream & | s | ) | [inline, inherited] |
void extractData | ( | ) | const [protected, inherited] |
void factorize | ( | const MatrixType & | matrix | ) |
Performs a numeric decomposition of matrix
The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
References Eigen::InvalidInput, Eigen::NumericalIssue, and Eigen::Success.
ComputationInfo info | ( | ) | const [inline, inherited] |
Reports whether previous computation was successful.
Success
if computation was succesful, NumericalIssue
if the matrix.appears to be negative. References SuperLUBase< _MatrixType, Derived >::m_info, and SuperLUBase< _MatrixType, Derived >::m_isInitialized.
void init | ( | ) | [inline, protected] |
Reimplemented from SuperLUBase< _MatrixType, SuperILU< _MatrixType > >.
References SuperLUBase< _MatrixType, Derived >::init(), and SuperLUBase< _MatrixType, SuperILU< _MatrixType > >::m_sluOptions.
Referenced by SuperILU< _MatrixType >::SuperILU().
void initFactorization | ( | const MatrixType & | a | ) | [inline, protected, inherited] |
References Eigen::internal::asSluMatrix(), SuperLUBase< _MatrixType, Derived >::clearFactors(), SluMatrix::lda, SuperLUBase< _MatrixType, Derived >::m_extractedDataAreDirty, SuperLUBase< _MatrixType, Derived >::m_matrix, SuperLUBase< _MatrixType, Derived >::m_p, SuperLUBase< _MatrixType, Derived >::m_q, SuperLUBase< _MatrixType, Derived >::m_sluA, SuperLUBase< _MatrixType, Derived >::m_sluB, SuperLUBase< _MatrixType, Derived >::m_sluCscale, SuperLUBase< _MatrixType, Derived >::m_sluEtree, SuperLUBase< _MatrixType, Derived >::m_sluOptions, SuperLUBase< _MatrixType, Derived >::m_sluRscale, SuperLUBase< _MatrixType, Derived >::m_sluX, PlainObjectBase< Derived >::resize(), SluMatrix::setScalarType(), SluMatrix::setStorageType(), SluMatrix::storage, and SluMatrix::values.
superlu_options_t& options | ( | ) | [inline, inherited] |
References SuperLUBase< _MatrixType, Derived >::m_sluOptions.
const internal::solve_retval<SuperLUBase, Rhs> solve | ( | const MatrixBase< Rhs > & | b | ) | const [inline, inherited] |
References SuperLUBase< _MatrixType, Derived >::m_isInitialized, and SuperLUBase< _MatrixType, Derived >::rows().
int m_analysisIsOk [protected, inherited] |
bool m_extractedDataAreDirty [mutable, protected, inherited] |
int m_factorizationIsOk [protected, inherited] |
ComputationInfo m_info [mutable, protected, inherited] |
bool m_isInitialized [protected, inherited] |
LUMatrixType m_l [mutable, protected, inherited] |
LUMatrixType m_matrix [mutable, protected, inherited] |
IntColVectorType m_p [mutable, protected, inherited] |
IntRowVectorType m_q [mutable, protected, inherited] |
Matrix<RealScalar,Dynamic,1> m_sluBerr [mutable, protected, inherited] |
Matrix<RealScalar,Dynamic,1> m_sluCscale [mutable, protected, inherited] |
char m_sluEqued [mutable, protected, inherited] |
std::vector<int> m_sluEtree [mutable, protected, inherited] |
Matrix<RealScalar,Dynamic,1> m_sluFerr [mutable, protected, inherited] |
SuperMatrix m_sluL [mutable, protected, inherited] |
superlu_options_t m_sluOptions [mutable, protected, inherited] |
Referenced by SuperILU< _MatrixType >::init().
Matrix<RealScalar,Dynamic,1> m_sluRscale [mutable, protected, inherited] |
SuperLUStat_t m_sluStat [mutable, protected, inherited] |
SuperMatrix m_sluU [mutable, protected, inherited] |
LUMatrixType m_u [mutable, protected, inherited] |