[petsc-users] on SNESSetJacobian semantics

Marco Zocca zocca.marco at gmail.com
Thu Oct 22 09:20:35 CDT 2015


The signature of SNESSetJacobian is

PetscErrorCode  SNESSetJacobian(SNES snes,Mat Amat,Mat Pmat,PetscErrorCode
(*J)(SNES,Vec,Mat,Mat,void*),void *ctx)

however it would seem redundant to supply both a constant matrix and a
function to compute the Jacobian.
The manual says of J "(if NULL then SNES retains any previously set value":
this would only apply to linear functions, is this correct?

Why then are there not two monomorphic "SetJacobian" functions, one for
linear maps that wouldn't require recomputation and one for every other
case ?

Coming from a functional background, I find reasoning with "NULL" to be
very error-prone.

Thank you,
Marco
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20151022/a81ab14c/attachment.html>


More information about the petsc-users mailing list