How to solve this symmetric indefinite matrix with pardiso?

How to solve this symmetric indefinite matrix with pardiso?


        Greetings! I would like to know how to effectively solve this(attached file) symmetric indefinite system using PARDISO. This particular matrix has super diagonal dominancy and almost zero and negative offdiagonal terms. I tried with differente pardiso parameters, could not get the solution promised by other softwares. Please suggest and list pardiso parameters/options for solving this matrix. The expected(promised) solution is ~0.7 all.

Thank you


Downloadtext/plain csr-matrx-tab-delimited.txt43.4 KB
6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Included among the MKL source code examples are source files (in C, Fortran) to solve symmetric indefinite systems. Adapt one of them to read your problem data and run the program.

I find your phrase "promised solution" incomprehensible. Please explain.

      Yes, I shall explain more, the matrix given in the text file is generated by a finite element program (ANSYS).The finite element program gives output as ~0.70 (promised solution) for all which is correct practically. When I use the same matrix  and solve it through MKL PARDISO it gives values ranging from ~0.6 to ~2.0 which is not practical. I just used phase 11,22,33 to solve this matrix. As I explained earlier, the matrix is super dominant along diagonal but have very less values offdiagonal (zero and negative). I would like to know different parameter tweaks in MKL PARDISO to get result similar to the finite element program.

Any help in this direction is greately appreciated.

The example code pardiso_sym_f90.f90 that is distributed with MKL, when run on your data, gives a solution vector whose components range from 0.700 to 0.703. No changes to the algorithmic parameters (IPARM array) were needed other than those already present in the example code.

Rather than asking for tweaks, you should pay attention to providing your data correctly to MKL-Pardiso.

How do you set PARDISO parameters? Do you just use the default settings? There are a few settings in iparm you can try to tweak to get better results (assuming mtype = -2):

iparm[9] - Pivort perturbation

iparm[10] - Scaling

iparm[12] - Maximum weighted matching

See here for detailed discussions on how to set these parameters.

See the code example $MKLROOT/examples/solverc/source/pardiso_sym_getdiag_c.c for hints on how to handle symmetric indefinie matrix.

Thank you for both of your help. Sorted it by tweaking iparm values as indicated above.

Leave a Comment

Please sign in to add a comment. Not a member? Join today