<div class="gmail_quote">On Tue, Feb 28, 2012 at 14:51, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@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 id=":1xn">Let me restate the plan:<br>
<br>
We want to retain the current hierarchy: IS, Vec, Mat, DM, PC/KSP, SNES, TS. To do this we "cheat" slightly by having a PC/KSP part of the DM, a SNES part of DM and a TS part of DM that are implemented outside of the base _p_DM. In a sense they are subclasses of the base DM that support PC/KSP, SNES, and TS.  The fact that they are subclasses is represented in the method names DMSNESSetFunction() etc (note that Jed has it wrong above by putting the Set before the XXXX).</div>
</blockquote></div><br><div>This is mostly implemented now, I'll push soon.</div><div><br></div><div>What was the rationale behind the silent early exit from SNESComputeJacobian() if snes->ops->computejacobian as not set? I would prefer explicitly setting a Jacobian routine that does nothing to this behavior which I think is error prone.</div>