[petsc-users] Question on PETSc solver iteration and convergence
Torquil Macdonald Sørensen
torquil at gmail.com
Mon Jan 27 17:11:57 CST 2014
On 27/01/14 23:27, Danyang Su wrote:
> Does the following convergence monitoring make sense? I thought the
> solver should stop before iteration 36, but it stops at iteration 70.
>
> 0 KSP preconditioned resid norm 4.208619583781e-002 true resid norm
> 2.227983625699e-005 ||r(i)||/||b|| 1.000000000000e+000
> 1 KSP preconditioned resid norm 6.403275610900e-003 true resid norm
> 2.795175726580e-007 ||r(i)||/||b|| 1.254576422528e-002
> 2 KSP preconditioned resid norm 7.416300263102e-004 true resid norm
> 3.382118379502e-010 ||r(i)||/||b|| 1.518017610404e-005
> 3 KSP preconditioned resid norm 6.144409100696e-005 true resid norm
> 1.260466100377e-009 ||r(i)||/||b|| 5.657429820568e-005
> 4 KSP preconditioned resid norm 4.990158094666e-005 true resid norm
> 3.632496726225e-008 ||r(i)||/||b|| 1.630396509349e-003
> 5 KSP preconditioned resid norm 2.743769015994e-005 true resid norm
> 1.101666758939e-009 ||r(i)||/||b|| 4.944680680017e-005
> 6 KSP preconditioned resid norm 4.269805798759e-006 true resid norm
> 7.915494521121e-011 ||r(i)||/||b|| 3.552761532813e-006
> 7 KSP preconditioned resid norm 1.632413041808e-006 true resid norm
> 1.163794439302e-009 ||r(i)||/||b|| 5.223532282187e-005
> 8 KSP preconditioned resid norm 8.010590587547e-007 true resid norm
> 1.246839309256e-011 ||r(i)||/||b|| 5.596267831030e-007
> 9 KSP preconditioned resid norm 4.794695759395e-007 true resid norm
> 3.155943984006e-012 ||r(i)||/||b|| 1.416502324166e-007
> 10 KSP preconditioned resid norm 4.500033799628e-007 true resid norm
> 4.554787575528e-011 ||r(i)||/||b|| 2.044354151884e-006
> ...
> 36 KSP preconditioned resid norm 2.752424650444e-009 true resid norm
> 2.990835953592e-016 ||r(i)||/||b|| 1.342395841286e-011
> ...
> 51 KSP preconditioned resid norm 5.761764412500e-010 true resid norm
> 2.557370618510e-016 ||r(i)||/||b|| 1.147840849911e-011
> ...
> 69 KSP preconditioned resid norm 4.324655127362e-010 true resid norm
> 1.982933485715e-014 ||r(i)||/||b|| 8.900125938281e-010
> 70 KSP preconditioned resid norm 3.923752626311e-010 true resid norm
> 1.065002491928e-015 ||r(i)||/||b|| 4.780118128535e-011
>
> Thanks,
>
> Danyang
If you run with "-ksp_converged_reason" the output will tell you why it
converged (rtol or abstol). If you look here:
http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPSetTolerances.html
you'll see that rtol represents the "relative decrease in the residual
norm".
So you should look at the ratio between a value and the correponding
value in the same column at the first iteration. In your case, you'll
have to get to iteration 70 before that ratio goes below rtol:
3.923752626311e-010 / 4.208619583781e-002 < 1e-8
Best regards
Torquil Sørensen
More information about the petsc-users
mailing list