On Thu, Mar 7, 2013 at 10:00 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> > On Thu, Mar 7, 2013 at 8:44 AM, Barry Smith <bsmith at mcs.anl.gov> wrote: > >> And merged with the SNESUpdateCheckJacobian() which is not as >> extensive as the "compare" test but far better designed and much prettier >> code :-) Also could all that code be pulled out of SNESComputeJacobian() >> and put in a separate private routine called by SNESComputeJacobian()? >> > > I see snes->ops->update in all the solvers, including those that do not > compute Jacobians. Can those calls be moved inside SNESComputeJacobian()? > > If SNESUpdateCheckJacobian continues to be called before computing the > Jacobian, then it should finish by re-evaluating the residual at the > original point. Why? Because we allow people to cache part of the Jacobian > internally and (especially for non-smooth problems) we need to ask the user > for the Jacobian at exactly the same place we evaluated the residual. > > Do we need this SNESSetUpdate() system for anything else? > My memory is that I put this in there to mimic SNESVI type of things a decade before that existed. I had to project things back onto the particles at the end of a step, and I think I also used it to splice in a lubrication model. Matt > > I object to -snes_compare because it sounds like you are comparing >> SNESes, which you are not. Maybe -snes_jacobian_compare ? >> > > I'm happy to use -snes_jacobian_check (or -snes_check_jacobian, depending > on our endianness). > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130307/5ea2ebc3/attachment-0001.html>
