Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
7220 Discussions

dcsrilu preconditioners - upper triangle matrix?

damienhocking
New Contributor I
764 Views

Hi all,

I have a nonlinear trust-region solver that I use Pardiso in, and Pardiso works very well (even at 25 million nonzeroes+). I want to wrap the gmres solver with preconditioning as another linear solver option. If I try dcsrilu0 for example with a Jacobian matrix that solves with Pardiso, I get

MKL DCSRILU0 ERROR:
Cannot proceed with calculations as
matrix has no diagonal in CSR format.
Preconditioner dcsrilu0 has returned the ERROR code -101

Then I noticed in the dcsrilu docs it says to supply the matrix in Pardiso CSR format, but upper triangle only. I take it there's no option to give it a complete unsymmetric matrix? That could be a pain, because then I'd have to store half the Jacobian again and reprocess the indices so I only had the upper triangular portion. Do I have any other options here?

Damien

0 Kudos
2 Replies
Alexander_K_Intel2
764 Views

Hi,

Could you provide example of you codefor deeper understanding your problem? The main idea of ILU0 decomposition is that structure of resultingLU matricesis the same of stucture of initial matrix A. So you can used complete unsymmetric matrix in LU decomposition with one notice:All diagonal elementsof initial matrix must exist in CSR format even they are equal zero. The reason of it really simple - structure of LU and A the same but diagonal element of LU could not be equal zero.

With best regards,

Alexander Kalinkin

0 Kudos
damienhocking
New Contributor I
764 Views

Hmmm. I need to check that matrix to make sure the diagonal entries are all there. I'll do that.

Damien

0 Kudos
Reply