<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 25/10/13 18:59, Matthew Knepley
wrote:<br>
</div>
<blockquote
cite="mid:CAMYG4GntLCk9WCOE84tfMbPFG=xGc03DY5oZvWShvOm1grAuwQ@mail.gmail.com"
type="cite">
<div dir="ltr">On Fri, Oct 25, 2013 at 11:33 AM, Torquil Macdonald
Sørensen <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:torquil@gmail.com" target="_blank">torquil@gmail.com</a>></span>
wrote:<br>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>Hi!<br>
<br>
</div>
I'm using PETSc 3.4.3, with only default runtime
settings, to solve Ax=b, for complex numbers (I
have used --with-scalar-type=complex).<br>
<br>
</div>
After reading sections 4.3.1, 4.3.2, 4.3.3 in the
manual, I decided to investigate the convergence in
my program, since I'm having some problems when the
system is larger. So, I'm running it with the
options<br>
<br>
-ksp_monitor_true_residual -ksp_converged_reason
-ksp_view<br>
<br>
</div>
The output shows that the relative tolerance required
for convergence is 1e-5, but none of the reported
norms are that small. Despite this, convergence is
reported (CONVERGED_RTOL).<br>
<br>
</div>
<div>I though that CONVERGED_RTOL should indicate that
||r||_2/||b||_2 < 1e-5, where r is the
preconditioned residual?<br>
</div>
<div><br>
</div>
<div>Here is the output of my program (which includes
some code to compute the l_2 norm of b, just before
KSPSolve is run):<br>
<br>
*************************************************************<br>
Norm of b: 0.179829<br>
0 KSP preconditioned resid norm 2.508789303280e+04
true resid norm 1.798290175843e-01 ||r(i)||/||b||
1.000000000000e+00<br>
1 KSP preconditioned resid norm 1.856991132478e+00
true resid norm 3.186462510386e-01 ||r(i)||/||b||
1.771940120227e+00<br>
2 KSP preconditioned resid norm 1.704678606994e-01
true resid norm 4.004071321891e-02 ||r(i)||/||b||
2.226599119363e-01<br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>So the relative preconditioned residual is:</div>
<div>
<br>
</div>
<div> 1.7e-01 / 2.5e+04 < 1.0e-5</div>
<div><br>
</div>
<div>while the relative true residual is 2.2e-1. This
happens because you are using ILU(0). It can be really</div>
<div>crappy, and in this case the preconditioner is very
ill-conditioned. I can't imagine a problem where I</div>
<div>would recommend using ILU, but its our default because
its the only black-box PC that exists.</div>
<div><br>
</div>
<div> Thanks</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<br>
</div>
</div>
</div>
</blockquote>
<br>
From your explanation I can see that I had misunderstood the meaning
of "relative preconditioned residual norm", but now I understand.
Thanks for clearing it up!<br>
<br>
Best regards<br>
Torquil Sørensen<br>
</body>
</html>