petsc-3.3-p7 2013-05-11

SNESDefaultComputeJacobian

Computes the Jacobian using finite differences.

Synopsis

#include "petscsnes.h"  
PetscErrorCode  SNESDefaultComputeJacobian(SNES snes,Vec x1,Mat *J,Mat *B,MatStructure *flag,void *ctx)
Collective on SNES

Input Parameters

x1 - compute Jacobian at this point
ctx - application's function context, as set with SNESSetFunction()

Output Parameters

J - Jacobian matrix (not altered in this routine)
B - newly computed Jacobian matrix to use with preconditioner (generally the same as J)
flag - flag indicating whether the matrix sparsity structure has changed

Options Database Key

-snes_fd - Activates SNESDefaultComputeJacobian()
-snes_test_err - Square root of function error tolerance, default square root of machine epsilon (1.e-8 in double, 3.e-4 in single)
-mat_fd_type - Either wp or ds (see MATMFFD_WP or MATMFFD_DS)

Notes

This routine is slow and expensive, and is not currently optimized to take advantage of sparsity in the problem. Although SNESDefaultComputeJacobian() is not recommended for general use in large-scale applications, It can be useful in checking the correctness of a user-provided Jacobian.

An alternative routine that uses coloring to exploit matrix sparsity is SNESDefaultComputeJacobianColor().

Keywords

SNES, finite differences, Jacobian

See Also

SNESSetJacobian(), SNESDefaultComputeJacobianColor(), MatCreateSNESMF()

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

Examples

src/snes/examples/tutorials/ex45.c.html
src/ts/examples/tutorials/ex4.c.html
src/ts/examples/tutorials/ex10.c.html
src/ts/examples/tutorials/ex15.c.html
src/ts/examples/tutorials/ex17.c.html