[petsc-dev] can we get rid of SNESCreate_Test() now?

Matthew Knepley knepley at gmail.com
Thu Mar 7 10:22:53 CST 2013


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.html>


More information about the petsc-dev mailing list