topic Calling pardiso with symmetric/unsymmetric arrays in Fortran in IntelĀ® oneAPI Math Kernel Library & IntelĀ® Math Kernel Library
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-pardiso-with-symmetric-unsymmetric-arrays-in-Fortran/m-p/1183743#M29465
<P>Hello,</P><P>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.</P><P>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. </P><P>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.)?</P><P>Yannis</P>Sun, 09 Feb 2020 23:43:05 GMTIoannis_K_2020-02-09T23:43:05ZCalling pardiso with symmetric/unsymmetric arrays in Fortran
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-pardiso-with-symmetric-unsymmetric-arrays-in-Fortran/m-p/1183743#M29465
<P>Hello,</P><P>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.</P><P>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. </P><P>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.)?</P><P>Yannis</P>Sun, 09 Feb 2020 23:43:05 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-pardiso-with-symmetric-unsymmetric-arrays-in-Fortran/m-p/1183743#M29465Ioannis_K_2020-02-09T23:43:05ZHello Yannis,
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-pardiso-with-symmetric-unsymmetric-arrays-in-Fortran/m-p/1183744#M29466
<P>Hello Yannis,</P><P>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.</P><P>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.</P><P>Hope this is useful!</P><P>Best,<BR />Kirill</P><P> </P>Sun, 09 Feb 2020 23:55:13 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Calling-pardiso-with-symmetric-unsymmetric-arrays-in-Fortran/m-p/1183744#M29466Kirill_V_Intel2020-02-09T23:55:13Z