:orphan: # DMSNESGetJacobian get `SNES` Jacobian evaluation function ## Synopsis ``` #include "petscsnes.h" #include "petscdm.h" PetscErrorCode DMSNESGetJacobian(DM dm, PetscErrorCode (**J)(SNES, Vec, Mat, Mat, void *), void **ctx) ``` Not Collective ## Input Parameter - ***dm -*** `DM` to be used with `SNES` ## Output Parameters - ***J -*** Jacobian evaluation function; for all calling sequence see `SNESJacobianFunction` - ***ctx -*** context for residual evaluation ## Note `SNESGetJacobian()` is normally used, but it calls this function internally because the user context is actually associated with the `DM`. This makes the interface consistent regardless of whether the user interacts with a `DM` or not. ## Developer Note If `DM` took a more central role at some later date, this could become the primary method of setting the Jacobian. ## See Also `DMSNESSetContext()`, `SNESSetFunction()`, `DMSNESSetJacobian()`, `SNESJacobianFunction` ## Level advanced ## Location src/snes/utils/dmsnes.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/utils/dmsnes.c) [Index of all SNES routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)