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>
