Hi Idefix,
Could you please describe some details? First of all what the value of ipar(5) and ipar(11) before calling dcg_check? The value of error with/without preconditioner after computation? Is it matrix A positive define? It can help us to understand your problem with ILU and find the way to solve it.
With best regards,
Alexander
Hi Alexander,
thanks for your reply. I computed the eigenvalues of the matrix A in my example by the LAPACK routines DSYTRD and DSTERF. All eigenvalues are positive, hence the matrix is positive definite. The maximum eigenvalue is 46.6 and the minimum eigenvalue is 0.164.
Here are some more details:
IPAR(5)= 150
This maximum number of iterations is sufficient if I run DCG without preconditioner. I have made an additional test by setting it to 1000 if I use the preconditioner but the solution does still not converge. The routine DCG returns values of RCI_Request (istat in my example) of 1, 3, 1, 3 […] and finally -1 (maximum number of iterations exceeded). Without preconditioner, it takes between 30 to 50 iterations until convergence if the relative tolerance DPAR(1) is set to 1.D-6.
IPAR(8)=1
Routine DCG performs stopping test for number of iterations
IPAR(9)=1
Routine DCG performs residual stopping test
IPAR(10)=0
No user-defined stopping test
IPAR(11)=1
Use preconditioner.
DPAR(1)=1.0D-6
Relative tolerance. Increasing this value to 1.D-3 does not help to reach convergence if I use the preconditioner, without preconditioner it lowers the number of iterations required to reach convergence to about 20. All other values of array DPAR are at their default values.
I am looking forward to your reply,
Idefix