petsc-3.6.3 2015-12-03
Report Typos and Errors

# SNESSetJacobian

Sets the function to compute Jacobian as well as the location to store the matrix.

### Synopsis

```#include "petscsnes.h"
PetscErrorCode  SNESSetJacobian(SNES snes,Mat Amat,Mat Pmat,PetscErrorCode (*J)(SNES,Vec,Mat,Mat,void*),void *ctx)
```
Logically Collective on SNES and Mat

### Input Parameters

 snes - the SNES context Amat - the matrix that defines the (approximate) Jacobian Pmat - the matrix to be used in constructing the preconditioner, usually the same as Amat. J - Jacobian evaluation routine (if NULL then SNES retains any previously set value), see SNESJacobianFunction for details ctx - [optional] user-defined context for private data for the Jacobian evaluation routine (may be NULL) (if NULL then SNES retains any previously set value)

### Notes

If the Amat matrix and Pmat matrix are different you must call MatAssemblyBegin/End() on each matrix.

If you know the operator Amat has a null space you can use MatSetNullSpace() and MatSetTransposeNullSpace() to supply the null space to Amat and the KSP solvers will automatically use that null space as needed during the solution process.

If using SNESComputeJacobianDefaultColor() to assemble a Jacobian, the ctx argument must be a MatFDColoring.

Other defect-correction schemes can be used by computing a different matrix in place of the Jacobian. One common example is to use the "Picard linearization" which only differentiates through the highest order parts of each term.

### Keywords

SNES, nonlinear, set, Jacobian, matrix

KSPSetOperators(), SNESSetFunction(), MatMFFDComputeJacobian(), SNESComputeJacobianDefaultColor(), MatStructure, J,
SNESSetPicard(), SNESJacobianFunction

### Examples

src/snes/examples/tutorials/ex1.c.html
src/snes/examples/tutorials/ex2.c.html
src/snes/examples/tutorials/ex3.c.html
src/snes/examples/tutorials/ex5s.c.html
src/snes/examples/tutorials/ex12.c.html
src/snes/examples/tutorials/ex14.c.html
src/snes/examples/tutorials/ex15.c.html
src/snes/examples/tutorials/ex18.c.html
src/snes/examples/tutorials/ex20.c.html
src/snes/examples/tutorials/ex22.c.html
src/snes/examples/tutorials/ex28.c.html