[petsc-users] DIVERGED_DTOL

Jed Brown jedbrown at mcs.anl.gov
Tue Jan 8 11:58:24 CST 2013


On Tue, Jan 8, 2013 at 11:50 AM, w_ang_temp <w_ang_temp at 163.com> wrote:

>
> I am sorry.
> In my view, preconditioned resid norm:||rp||=||Bb-BAx||(B is the
> preconditioned matrix);
>

-ksp_norm_type preconditioned is the default for GMRES, so it's using
preconditioned residual.


> true resid norm:||rt||=||b-Ax||;  ||r(i)||/||b||:  ||rt||/||b||.   Is it
> right?
> (1) Divergence is detected if
>
>     ||rp||/||b|| > dtol     or     ||rt||/||b|| > dtol  ?
>

Neither, it's |rp|/|min(rp0,rp1,rp2,rp3,...)|. Your solver "converges" a
bit at some iteration and then jumps a lot so the denominator is smaller
than rp0.


>     Both of them (rt/b:1.701448294063e+04 / 6.7139E+4;
> rt/b:2.716078947576e+04; dtol=1.0E+5 )
> are not in this example, but it is divergent?
>
> (2) Convergence is detected at iteration k if :
>     ||rp||/||b|| < rtol
>     But I find that when "preconditioned resid norm" is less than rtol, it
> begins to be convergent(another example,rtol=1.0E-15):
> 19 KSP preconditioned resid norm 4.964358598559e-15 true resid norm
> 1.076736705942e-08 ||r(i)||/||b|| 1.603737473724e-13
> 120 KSP preconditioned resid norm 1.045516340849e-14 true resid norm
> 1.089531944048e-08 ||r(i)||/||b|| 1.622795245901e-13
> 121 KSP preconditioned resid norm 1.209016864072e-14 true resid norm
> 1.096191254361e-08 ||r(i)||/||b|| 1.632713906089e-13
> 122 KSP preconditioned resid norm 1.568004225873e-15 true resid norm
> 1.073893120243e-08 ||r(i)||/||b|| 1.599502116167e-13
> 123 KSP preconditioned resid norm 5.066448468788e-15 true resid norm
> 1.078375214589e-08 ||r(i)||/||b|| 1.606177938235e-13
> 124 KSP preconditioned resid norm 3.619818305395e-16 true resid norm
> 1.073887987132e-08 ||r(i)||/||b|| 1.599494470692e-13
> Linear solve converged due to CONVERGED_RTOL iterations 124
>     In iteration 124, preconditioned resid norm begins to be smaller than
> rtol.
>
>     Thanks.                                 Jim
>
>
>
>
> >On 2013-01-09 01:13:44,"Jed Brown" <jedbrown at mcs.anl.gov> 写道:
>
>  >>On Tue, Jan 8, 2013 at 11:08 AM, w_ang_temp <w_ang_temp at 163.com> wrote:
>
>> >>354 KSP preconditioned resid norm 2.882557881065e-01 true resid norm
>> 3.089426814670e+04 ||r(i)||/||b|| 4.601523777979e-01
>>
>
> >^^ Notice how this ratio is less than 1.0? DTOL is defined in terms of
> the smallest residual norm seen.
>
>
>> >>355 KSP preconditioned resid norm 2.170676916299e+02 true resid norm
>> 2.326457175403e+07 ||r(i)||/||b|| 3.465124326697e+02
>> >>356 KSP preconditioned resid norm 5.764266225925e+00 true resid norm
>> 6.177943120636e+05 ||r(i)||/||b|| 9.20169 1405543e+00
>> >>357 KSP preconditioned resid norm 1.701448294063e+04 true resid norm
>> 1.823554008687e+09 ||r(i)||/||b|| 2.716078947576e+04
>>
>> >>Linear solve did not converge due to DIVERGED_DTOL iterations 357
>>
>> >>I cannot understand it. Which one means that the DIVERGED_DTOL
>> occures:preconditioned resid norm, true resid norm or ||r(i)||/||b||?
>> >>What is the difference between preconditioned resid norm  and true
>> resid norm?
>>
>
> >It uses the norm that your method is running. In this case, it's the
> preconditioned norm.
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130108/997889bb/attachment.html>


More information about the petsc-users mailing list