<div dir="ltr"><span style="font-size:12.8px">Thank you, but this is not really helping;</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">why are there two slots to supply the Jacobian of the same function, i.e. Amat and J ?</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On 22 October 2015 at 16:30, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Thu, Oct 22, 2015 at 9:20 AM, Marco Zocca <span dir="ltr"><<a href="mailto:zocca.marco@gmail.com" target="_blank">zocca.marco@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>The signature of SNESSetJacobian is </div><div><br></div>PetscErrorCode  SNESSetJacobian(SNES snes,Mat Amat,Mat Pmat,PetscErrorCode (*J)(SNES,Vec,Mat,Mat,void*),void *ctx)         <div><br></div><div>however it would seem redundant to supply both a constant matrix and a function to compute the Jacobian.</div><div>The manual says of J "(if NULL then SNES retains any previously set value": this would only apply to linear functions, is this correct?</div></div></blockquote><div><br></div></span><div>It means, if you give NULL, but have previously called SetJacobian() then it uses the function pointer previously passed</div><div>rather than setting it to NULL.</div><div><br></div></div><span class="HOEnZb"><font color="#888888"><div><br></div>
</font></span></div></div>
</blockquote></div><br></div></div>