<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""></div><div> Nicola,</div><div><br class=""></div><div> With left preconditioner it is actually ||r(i)||/|| B b || < 1.e-7 as the stopping criteria (note the B inside the norm). Where B is the action of the preconditioner and r(0) = B b which is printed on the first line as 5.033493299009e+03</div><div><br class=""></div><div> With left preconditioning r(i) = B (b - A x(i)) = B A (x* - x(i)) = B A error</div><div><br class=""></div><div>Barry</div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class="">On Nov 25, 2020, at 12:05 PM, Nicola Varini <<a href="mailto:nicola.varini@epfl.ch" class="">nicola.varini@epfl.ch</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
<div class=""><p class="">Thanks Pierre for the clarification, perhaps it would be useful
to print ||r(i)||/||b|| according to ksp_norm_type?<br class="">
<br class="">
<br class="">
</p><p class=""><br class="">
</p>
<div class="moz-cite-prefix">On 11/25/20 5:29 PM, Pierre Jolivet
wrote:<br class="">
</div>
<blockquote type="cite" cite="mid:197C066B-B5E9-477C-BA99-E9C0A9D2114D@joliv.et" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
Dear Nicola,
<div class="">rtol is relative tolerance: everything is computed
with respect to r_0.</div>
<div class="">So, for the preconditioned case:
3.759000903215e-04/5.033493299009e+03 < 1e-07</div>
<div class="">For the unpreconditioned
case: 8.902026754193e-06/3.204525251924e+02 < 1e-07<br class="">
<div class="">
<div class="">Is it clearer that way?</div>
<div class=""><br class="">
</div>
<div class="">Thanks,</div>
<div class="">Pierre</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 25 Nov 2020, at 4:14 PM, Nicola Varini
<<a href="mailto:nicola.varini@epfl.ch" class="" moz-do-not-send="true">nicola.varini@epfl.ch</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class=""><p class="">Dear all, forgive me if the following
question is trivial, but I am trying to figure out<br class="">
how the convergence criteria works in case of
-ksp_norm_type preconditioned.<br class="">
Below you can find the logs for preconditioned vs
unpreconditioned. The solver converge with reason
converged_rtol.<br class="">
-ksp_rtol=1e-7<br class="">
In the case of unpreconditioned norm it is clear
that ||r||/||b||<1e-7 at iteration 12.<br class="">
In the case of preconditioned norm it should be
||r||/||b|| = 1.17e-06.<br class="">
What am I missing?<br class="">
<br class="">
<b class="">PRECONDITIONED NORM</b><br class="">
0 KSP preconditioned resid norm 5.033493299009e+03
true resid norm 3.204525251924e+02 ||r(i)||/||b||
1.000000000000e+00<br class="">
1 KSP preconditioned resid norm 3.425803632572e+02
true resid norm 1.937892001317e+02 ||r(i)||/||b||
6.047360682066e-01<br class="">
2 KSP preconditioned resid norm 4.382931341126e+01
true resid norm 5.154130142755e+01 ||r(i)||/||b||
1.608391177339e-01<br class="">
3 KSP preconditioned resid norm 4.272202338001e+00
true resid norm 9.790042315960e+00 ||r(i)||/||b||
3.055067926234e-02<br class="">
4 KSP preconditioned resid norm 2.728350554402e-01
true resid norm 1.065721671294e+00 ||r(i)||/||b||
3.325677245496e-03<br class="">
5 KSP preconditioned resid norm 2.269929645857e-02
true resid norm 1.475155830456e-01 ||r(i)||/||b||
4.603352180079e-04<br class="">
6 KSP preconditioned resid norm 7.380512306491e-03
true resid norm 4.703550871658e-02 ||r(i)||/||b||
1.467783993536e-04<br class="">
7 KSP preconditioned resid norm 1.413199151428e-03
true resid norm 1.452742106199e-02 ||r(i)||/||b||
4.533408202436e-05<br class="">
8 KSP preconditioned resid norm 3.759000903215e-04
true resid norm 4.907814057015e-03 ||r(i)||/||b||
1.531526098622e-05<br class="">
</p><p class=""><b class="">UNPRECONDITIONED NORM</b><br class="">
</p><p class=""> 0 KSP unpreconditioned resid norm
3.204525251924e+02 true resid norm
3.204525251924e+02 ||r(i)||/||b|| 1.000000000000e+00<br class="">
1 KSP unpreconditioned resid norm
1.310814475877e+02 true resid norm
1.310814475877e+02 ||r(i)||/||b|| 4.090510677331e-01<br class="">
2 KSP unpreconditioned resid norm
2.319724277605e+01 true resid norm
2.319724277605e+01 ||r(i)||/||b|| 7.238901538416e-02<br class="">
3 KSP unpreconditioned resid norm
2.060554152717e+00 true resid norm
2.060554152717e+00 ||r(i)||/||b|| 6.430138603150e-03<br class="">
4 KSP unpreconditioned resid norm
2.471285360225e-01 true resid norm
2.471285360226e-01 ||r(i)||/||b|| 7.711861090006e-04<br class="">
5 KSP unpreconditioned resid norm
6.698832182690e-02 true resid norm
6.698832182689e-02 ||r(i)||/||b|| 2.090428895409e-04<br class="">
6 KSP unpreconditioned resid norm
1.941260318181e-02 true resid norm
1.941260318179e-02 ||r(i)||/||b|| 6.057871808041e-05<br class="">
7 KSP unpreconditioned resid norm
5.610469571259e-03 true resid norm
5.610469571233e-03 ||r(i)||/||b|| 1.750795868394e-05<br class="">
8 KSP unpreconditioned resid norm
1.357950031961e-03 true resid norm
1.357950031957e-03 ||r(i)||/||b|| 4.237601283190e-06<br class="">
9 KSP unpreconditioned resid norm
4.277774357590e-04 true resid norm
4.277774357315e-04 ||r(i)||/||b|| 1.334916725885e-06<br class="">
10 KSP unpreconditioned resid norm
1.171326258320e-04 true resid norm
1.171326258188e-04 ||r(i)||/||b|| 3.655225551692e-07<br class="">
11 KSP unpreconditioned resid norm
3.381696730013e-05 true resid norm
3.381696731034e-05 ||r(i)||/||b|| 1.055287902320e-07<br class="">
12 KSP unpreconditioned resid norm
8.902026754193e-06 true resid norm
8.902026767788e-06 ||r(i)||/||b|| 2.777954944322e-08<br class="">
<br class="">
<br class="">
Thanks,<br class="">
<br class="">
Nicola<br class="">
</p>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</div>
</div></blockquote></div><br class=""></body></html>