Registered Member
|
Hi, everyone! I use BiCGSTAB to solve a sparse matrix. This is my code:
The header file is
And I get this running error : eigen3.2.7/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h:171: const Eigen::internal::solve_retval<Eigen::IncompleteLUT<_Scalar>, Rhs> Eigen::IncompleteLUT<_Scalar>::solve(const Eigen::MatrixBase<OtherDerived>&) const [with Rhs = Eigen::Matrix<std::complex<float>, -1, 1>; _Scalar = std::complex<float>]: Assertion `m_isInitialized && "IncompleteLUT is not initialized."' failed. I don't why. The BiCGSTAB solver can't solve the complex matrix? Please help me. Thanks a lot!!! |
Registered Member
|
You probably need to initialize the preconditioner before using it.
Something like:
I guess if you call solver.compute(A) several times you might not have to call it again as long as the matrix A is similar to the previous calls. P.S.- I did not try to compile the code. |
Moderator
|
solver.compute(A) essentially calls "preconditioner.compute(A)", so the propblem is more likely that the ILUT preconditioner failed. This can check with:
if(solver.info()==Eigen::Success) ... after solver.compute(A). Could it be that you matrix contains empty rows or columns? |
Registered users: Bing [Bot], Google [Bot], Sogou [Bot]