petsc-3.4.2 2013-07-02

# SNESComputeJacobian

Computes the Jacobian matrix that has been set with SNESSetJacobian().

### Synopsis

    #include "petscsnes.h"
    PetscErrorCode  SNESComputeJacobian(SNES snes,Vec X,Mat *A,Mat *B,MatStructure *flg)

Collective on SNES and Mat

### Input Parameters

| snes | - the SNES context
| x | - input vector

### Output Parameters

| A | - Jacobian matrix
| B | - optional preconditioning matrix
| flag | - flag indicating matrix structure (one of, SAME_NONZERO_PATTERN,DIFFERENT_NONZERO_PATTERN,SAME_PRECONDITIONER)

### Options Database Keys

| -snes_lag_preconditioner <lag> | - . -snes_lag_jacobian <lag>
| -snes_compare_explicit | - Compare the computed Jacobian to the finite difference Jacobian and output the differences
| -snes_compare_explicit_draw | - Compare the computed Jacobian to the finite difference Jacobian and draw the result
| -snes_compare_explicit_contour | - Compare the computed Jacobian to the finite difference Jacobian and draw a contour plot with the result
| -snes_compare_operator | - Make the comparison options above use the operator instead of the preconditioning matrix
| -snes_compare_coloring | - Compute the finite differece Jacobian using coloring and display norms of difference
| -snes_compare_coloring_display | - Compute the finite differece Jacobian using coloring and display verbose differences
| -snes_compare_coloring_threshold | - Display only those matrix entries that differ by more than a given threshold
| -snes_compare_coloring_threshold_atol | - Absolute tolerance for difference in matrix entries to be displayed by -snes_compare_coloring_threshold
| -snes_compare_coloring_threshold_rtol | - Relative tolerance for difference in matrix entries to be displayed by -snes_compare_coloring_threshold
| -snes_compare_coloring_draw | - Compute the finite differece Jacobian using coloring and draw differences
| -snes_compare_coloring_draw_contour | - Compute the finite differece Jacobian using coloring and show contours of matrices and differences

### Notes

Most users should not need to explicitly call this routine, as it is used internally within the nonlinear solvers.

See KSPSetOperators() for important information about setting the flag parameter.

### Keywords

SNES, compute, Jacobian, matrix

### See Also

SNESSetJacobian(), KSPSetOperators(), MatStructure, SNESSetLagPreconditioner(), SNESSetLagJacobian()

Level:developer
Location: src/snes/interface/snes.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/snes/examples/tutorials/ex12.c.html
src/snes/examples/tutorials/ex31.c.html
src/snes/examples/tutorials/ex52.c.html
src/snes/examples/tutorials/ex62.c.html