<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 24, 2013 at 6:26 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Dmitry Karpeyev <<a href="mailto:karpeev@mcs.anl.gov">karpeev@mcs.anl.gov</a>> writes:<br>
<br>
> Yes.  How should EW version 3 be implemented then?  Currently EW3<br>
> piggybacks on snes->ttol to get a measure of the initial norm of the<br>
> residual, and relies on it having been set elsewhere.  If no<br>
> references to snes->ttol in SNESKSPEW_PreSolve() are allowed, what<br>
> should take its place?<br>
<br>
</div>I would say that EW3 should call VecNorm() on the first iteration.  Vecs<br>
cache their norms internally so this will only do one reduction, even if<br>
the SNES convergence test calls VecNorm() itself.<br></blockquote><div>Okay.  </div><div>Also, this is a minor point, but isn't SNESKSPEW_PreSolve() misnamed?</div><div>It operates on a KSP and takes a SNES context, so shouldn't it be KSPPreSolve_SNESEW() or some such?</div>

<div>Should we also fix SNESSkipConverged() --> SNESConvergedSkip() at the same time?</div><div>Dmitry.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
> I was just thinking of a single cache for the initial residual norm.<br>
> Currently there are at least two, it seems to me.<br>
<br>
</div>Well, snes->norm_init is currently serving a different purpose, but it's<br>
not entirely clear that it needs to be set.  In particular, do we ever<br>
compute a norm using a side channel rather than by calling VecNorm,<br>
possibly followed by VecCopy?  If not, isn't calling<br>
SNESSetInitialFunction enough?  SNES can just call VecNorm on F and<br>
it'll use the cached value if it was set.<br>
</blockquote></div><br><br clear="all"><div><br></div>
</div></div>