35 static_assert(EigenMatrix::RawMatrixType::IsRowMajor,
36 "Sparse matrix is required to be in row major storage.");
41 if (!A.isCompressed())
43 int nnz = A.nonZeros();
44 int* ptr = A.outerIndexPtr();
45 int* col = A.innerIndexPtr();
46 double* data = A.valuePtr();
53 bool const status = lissol.
solve(lisA, lisb, lisx);
55 for (std::size_t i = 0; i < lisx.
size(); i++)
Definition of the LisLinearSolver class.
Definition of the LisMatrix class.
Definition of the LisVector class.
bool solve(EigenMatrix &A, EigenVector &b, EigenVector &x)
EigenLisLinearSolver(const std::string solver_name, BaseLib::ConfigTree const *const option)
IndexType getNumberOfRows() const
return the number of rows
RawMatrixType & getRawMatrix()
Global vector based on Eigen vector.
RawVectorType & getRawVector()
return a raw Eigen vector object
Linear solver using Lis (http://www.ssisc.org/lis/)
void setOption(const LisOption &option)
bool solve(LisMatrix &A, LisVector &b, LisVector &x)
LisMatrix is a wrapper class for matrix types of the linear iterative solvers library.
Lis vector wrapper class.
std::size_t size() const
return a vector length