<div dir="ltr">On Tue, Jan 8, 2013 at 11:50 AM, w_ang_temp <span dir="ltr"><<a href="mailto:w_ang_temp@163.com" target="_blank">w_ang_temp@163.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-height:1.7;font-size:14px;font-family:arial"><div><br>I am sorry.</div>
<div>In my view, preconditioned resid norm:||rp||=||Bb-BAx||(B is the preconditioned matrix);<br></div></div></blockquote><div><br></div><div style>-ksp_norm_type preconditioned is the default for GMRES, so it's using preconditioned residual.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-height:1.7;font-size:14px;font-family:arial"><div>true resid norm:||rt||=||b-Ax||; ||r(i)||/||b||: ||rt||/||b||. Is it right?</div>
<div>(1) Divergence is detected if <br> <br> ||rp||/||b|| > dtol or ||rt||/||b|| > dtol ?</div></div></blockquote><div><br></div><div style>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.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-height:1.7;font-size:14px;font-family:arial">
<div> Both of them (rt/b:1.701448294063e+04 / 6.7139E+4; rt/b:2.716078947576e+04; dtol=1.0E+5 )</div>
<div>are not in this example, but it is divergent?</div>
<div><br>(2) Convergence is detected at iteration k if :</div>
<div> ||rp||/||b|| < rtol </div>
<div> But I find that when "preconditioned resid norm" is less than rtol, it begins to be convergent(another example,rtol=1.0E-15):</div>
<div>19 KSP preconditioned resid norm 4.964358598559e-15 true resid norm 1.076736705942e-08 ||r(i)||/||b|| 1.603737473724e-13<br>120 KSP preconditioned resid norm 1.045516340849e-14 true resid norm 1.089531944048e-08 ||r(i)||/||b|| 1.622795245901e-13<br>
121 KSP preconditioned resid norm 1.209016864072e-14 true resid norm 1.096191254361e-08 ||r(i)||/||b|| 1.632713906089e-13<br>122 KSP preconditioned resid norm 1.568004225873e-15 true resid norm 1.073893120243e-08 ||r(i)||/||b|| 1.599502116167e-13<br>
123 KSP preconditioned resid norm 5.066448468788e-15 true resid norm 1.078375214589e-08 ||r(i)||/||b|| 1.606177938235e-13<br>124 KSP preconditioned resid norm 3.619818305395e-16 true resid norm 1.073887987132e-08 ||r(i)||/||b|| 1.599494470692e-13<br>
Linear solve converged due to CONVERGED_RTOL iterations 124</div>
<div> In iteration 124, preconditioned resid norm begins to be smaller than rtol.</div>
<div><br> Thanks. Jim<br><br><br><br></div>
<div></div>
<div></div>
<div><br></div>>On 2013-01-09 01:13:44,"Jed Brown" <<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>> 写道:<div><div class="h5"><br>
<blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PADDING-LEFT:1ex">
<div dir="ltr">
<div class="gmail_extra">>>On Tue, Jan 8, 2013 at 11:08 AM, w_ang_temp <span dir="ltr"><<a href="mailto:w_ang_temp@163.com" target="_blank">w_ang_temp@163.com</a>></span> wrote:<br>
<div class="gmail_quote">
<blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PADDING-LEFT:1ex" class="gmail_quote">
<div>>>354 KSP preconditioned resid norm 2.882557881065e-01 true resid norm 3.089426814670e+04 ||r(i)||/||b|| 4.601523777979e-01<br></div></blockquote>
<div><br></div>
<div>>^^ Notice how this ratio is less than 1.0? DTOL is defined in terms of the smallest residual norm seen.</div>
<div> </div>
<blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PADDING-LEFT:1ex" class="gmail_quote">
<div>>>355 KSP preconditioned resid norm 2.170676916299e+02 true resid norm 2.326457175403e+07 ||r(i)||/||b|| 3.465124326697e+02<br>>>356 KSP preconditioned resid norm 5.764266225925e+00 true resid norm 6.177943120636e+05 ||r(i)||/||b|| 9.20169 1405543e+00<br>
>>357 KSP preconditioned resid norm 1.701448294063e+04 true resid norm 1.823554008687e+09 ||r(i)||/||b|| 2.716078947576e+04
<div><br>>>Linear solve did not converge due to DIVERGED_DTOL iterations 357</div></div>
<div> </div>
<div>>>I cannot understand it. Which one means that the DIVERGED_DTOL occures:preconditioned resid norm, true resid norm or ||r(i)||/||b||?</div>
<div>>>What is the difference between preconditioned resid norm and true resid norm?</div></blockquote></div><br></div>
<div class="gmail_extra">>It uses the norm that your method is running. In this case, it's the preconditioned norm.</div></div></blockquote></div></div></div><br><br><span title="neteasefooter"><span></span></span></blockquote>
</div><br></div></div>