<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
</span>You can use SNESSetJacobian, but DMSNESSetJacobianLocal is more<br>
convenient in my opinion.<br>
<span class=""><br>
> I still have some doubt. If<br>
><br>
> da0 --> for residual<br>
> da1 --> for jacobian<br>
><br>
> I still need to call SNESetDM. So here I pass da0 ? But then how will snes<br>
> know about da1 ?<br>
<br>
</span>This should work.<br>
<br>
DMCreateMatrix(da1, &Jpre);<br>
SNESSetDM(snes, da0);<br>
SNESSetJacobian(snes, NULL, Jpre, NULL, NULL);<br>
DMDASNESSetJacobianLocal(da0, func, ctx);<br>
<br><br></blockquote><div>In the last line above, should it not be da1 ?</div><div><br></div><div>Thanks a lot for the examples.</div><div><br></div><div>Best</div><div>praveenĀ </div></div><br></div></div>