On Sun, Jun 20, 2010 at 06:07, Barry Smith <span dir="ltr">&lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
  Hmm, this is a good question. There are tons of places where some sort of &quot;inner solve&quot; is imbedded in an &quot;outer solver&quot;, in fact many levels of nesting. We should handle this in a systematic way which likely means carefully checks put in various places in the code.<br>

<br>
  We could instead (or in addition) add an option to have KSPSolve() generate an error on &quot;not-convergence&quot;  instead of returning with a negative converged reason. The drawback to this is that you cannot &quot;handle&quot; the error and continue running, it just ends. Would this be useful?<br>
</blockquote><div><br>I don&#39;t know, but I don&#39;t think it&#39;s a substitute for propagating convergence failures without raising an error condition.  You don&#39;t want the error handler called for a non-exceptional occurrence.  You really want to unwind the stack nomally to whatever level can modify the problem (or report the convergence failure to the end-user).<br>
<br>Jed <br></div></div>