<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 22, 2014 at 8:48 AM, Fischer, Greg A. <span dir="ltr"><<a href="mailto:fischega@westinghouse.com" target="_blank">fischega@westinghouse.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello PETSc-users,<br>
<br>
I'm using the SNES component with the NGMRES method in my application. I'm using a matrix-free context for the Jacobian and the MatMFFDComputeJacobian() function in my FormJacobian routine. My understanding is that this effectively approximates the Jacobian using the equation at the bottom of Page 103 in the PETSc User's Manual. This works, but the expense of computing two function evaluations in each SNES iteration nearly wipes out the performance improvements over Picard iteration.<br>
</blockquote><div><br></div><div>Try -snes_type anderson.  It's less stable than NGMRES, but requires one function evaluation per iteration.  The manual is out of date.  I guess it's time to fix that.  It's interesting that the cost of matrix assembly and a linear solve is around the same as that of a function evaluation.  Output from -log_summary would help in the diagnosis.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Based on my (limited) understanding of the Oosterlee/Washio SIAM paper ("Krylov Subspace Acceleration of Nonlinear Multigrid..."), they seem to suggest that it's possible to approximate the Jacobian with a series of previously-computed residuals (eq 2.14), rather than additional function evaluations in each iteration. Is this correct? If so, could someone point me to a reference that demonstrates how to do this with PETSc?<br>
</blockquote><div><br></div><div>What indication do you have that the Jacobian is calculated at all in the NGMRES method?  The two function evaluations are related to computing the quantities labeled F(u_M) and F(u_A) in O/W.  We already use the Jacobian approximation for the minimization problem (2.14).</div>
<div><br></div><div>- Peter</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Or, perhaps a better question to ask is: are there other ways of reducing the computing burden associated with estimating the Jacobian?<br>
<br>
Thanks,<br>
Greg<br>
<br>
</blockquote></div><br></div></div>