SNESComputeJacobianDefault#
Computes the Jacobian using finite differences.
Synopsis#
#include "petscsnes.h"
PetscErrorCode SNESComputeJacobianDefault(SNES snes, Vec x1, Mat J, Mat B, void *ctx)
Collective
Input Parameters#
snes - the
SNES
contextx1 - 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
)
Options Database Keys#
-snes_fd - Activates
SNESComputeJacobianDefault()
-snes_fd_coloring - Activates a faster computation that uses a graph coloring of the matrix
-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
orMATMFFD_DS
)
Notes#
This routine is slow and expensive, and is not currently optimized
to take advantage of sparsity in the problem. Although
SNESComputeJacobianDefault()
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
SNESComputeJacobianDefaultColor()
.
This routine ignores the maximum number of function evaluations set with SNESSetTolerances()
and the function
evaluations it performs are not counted in what is returned by of SNESGetNumberFunctionEvals()
.
This function can be provided to SNESSetJacobian()
along with a dense matrix to hold the Jacobian
Developer Note#
The function has a poorly chosen name since it does not mention the use of finite differences
See Also#
SNES: Nonlinear Solvers, SNES
, SNESSetJacobian()
, SNESComputeJacobianDefaultColor()
, MatCreateSNESMF()
Level#
intermediate
Location#
Examples#
src/ts/tutorials/ex4.c
src/ts/tutorials/ex10.c
src/ts/tutorials/ex17.c
src/ts/tutorials/ex15.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages