Alex While I was working on this, I had run into another issue and I believe this is much more important and I thoughtyou help me out:
It is the same problem K * X = B : # of equations= 14791, #non-zeros in K= 167019.And, I do not have "error = -4" anymore (so the matrix is not ill conditioned). I solve it for matrix B that has 14791 rows and 799 columns (i.e., 799 load vectors)
I have two test2: * Test 1: I run PARDISO inside my code that is a part of a big software. ANd I solved all 799 load cases at once. PARDISO did not report any error or any wrongdoing. But the results were not correct (not quite garbage values but as if it did not carry out backward&forward substitution so that I got wrong displacecements back)
*Test 2: I created a small project (console application) in VS2010. I wroteK and B to a text file from Test 1 and then I readtheminto my console application. PARDISO run OK and reported correct results !....
Briefly,attempting solving 799 load case at once creates some issues in my big program whereas it is OK to do the same in my console application. Looks like a memory issue but what is scary is that PARDISO does not report any error in Test 1.
ALso, I noticed in phases 11and 22 that we pass in number of load vectors (799). Phase 11 and 22 are nothing but symbolic and numerical factorization of matrix K. Why does PARDISO need to know number of load cases at these phases?
A solution looks like to solve certain number of load vectors (let's say 50) and repeatedly call PARDISO to carry out forward & backward substitution (the matrix is only solved\decomposed once).
But I still want to know why PARDISO needs to know number of load vectors in phases 11 and 22. ALso, why it does not report any error in Test 1 (is there anything else I can check from PARDISO?)
Thanks a lot Bulent
p.s. Unfortunately, I cannot provide mt code used in Test 1. It is a very big program. Test 2 seems not helping much either.