Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
6434 Discussions

Calling pardiso with symmetric/unsymmetric arrays in Fortran

Ioannis_K_
Novice
151 Views

Hello,

I am using the direct solver routine pardiso in a fortran program of mine, for cases where the coefficient array is real. When I run the code for an unsymmetric array (mtype = 11), the routine works normally.

When I try to run the same code for a symmetric coefficient array (mtype = 1) or for a symmetric, positive-definite coefficient array (mtype = 2), the program aborts abnormally. I need to mention that, in all cases, I call pardiso and pass a coefficient array (in CSR3 format) that contains all the nonzero elements. 

I was wondering whether the abnormal termination is potentially caused by the input arguments that I pass. Thus, I wanted to ask if there is any difference in what the input arguments of pardiso should contain, depending on whether I have a symmetric or unsymmetric coefficient array (for example, do I only need to pass the upper/lower triangular part of a symmetric coefficient array, etc.)?

Yannis

0 Kudos
1 Reply
Kirill_V_Intel
Employee
151 Views

Hello Yannis,

As the documentation says, you need to pass only the upper triangular part of the matrix for symmetric matrix types. See https://software.intel.com/en-us/mkl-developer-reference-fortran-pardiso, section for ja prameter.

Also, whenever you are not sure about the input format, you can use the matrix checker (iparm(27)=1), it can provide additional output which can help.

Hope this is useful!

Best,
Kirill

 

Reply