Hello,
I am trying to follow the example described in this thread to use PARDISO as an iterative solver,
http://software.intel.com/en-us/forums/topic/326721
For now my code works fine if I put iparm(4)=0 and phase=13 for all matrices, but when I modify the code to use the template above, error message appears sometimes (error=-1 in the numerical factorization phase), so I think I must did something wrong. To clarify it, is it correct for me to do the following for A_i x_i = b_i, where the right-hand-side b_i is determined by x_i through some other subroutines (it is a self-consistent calculation),
----------------------------
pt=0
call PARDISO (phase=13, iparm(4)=0, A_1, pt, maxfct, mnum=1, x_1, b_1)
do while ( error > tolerance )
do i = 1, maxfct
call PARDISO (phase=23, iparm(4)=61, A_i, pt, maxfct, mnum=i, x_i, b_i)
end do
call subroutine to calculate new b_i from the x_i, and calculate the error
end do
call PARDISO (phase=-1, iparm(4)=61, A_1, pt, maxfct, mnum=1, x_1, b_1)
----------------------------
Just for reference, the other iparm parameters I am using are (these should be the same as the example file pardiso_unsym_complex_f.f ):
iparm(1) = 1
iparm(2) = 2
iparm(3) = 1
iparm(8) = 2
iparm(10) = 13
iparm(11) = 1
iparm(13) = 1
iparm(18) = -1
iparm(19) = -1
, and others are set to be zero. The matrix type is mtype=3 (complex strucuturely-symmetric)
By the way, I can not see any example code for using Pardiso as iterative solver in the MKL package. The examples codes I found are using Pardiso as direct solver. Did I missout something or there is no example code for this kind of applications? Thank you and I appreciate it.
Best regards,
CC