MatMFFDComputeJacobian

Tells the matrix-free Jacobian object the new location at which Jacobian matrix vector products will be computed at, i.e. J(x) * a. The x is obtained from the SNES object (using SNESGetSolution()).

Synopsis

#include "petscsnes.h" 
PetscErrorCode PETSCSNES_DLLEXPORT MatMFFDComputeJacobian(SNES snes,Vec x,Mat *jac,Mat *B,MatStructure *flag,void *dummy)
Collective on SNES

Input Parameters

snes - the nonlinear solver context
x - the point at which the Jacobian vector products will be performed
jac - the matrix-free Jacobian object
B - either the same as jac or another matrix type (ignored)
flag - not relevent for matrix-free form
dummy - the user context (ignored)

Warning

If MatMFFDSetBase() is ever called on jac then this routine will NO longer get the x from the SNES object and MatMFFDSetBase() must from that point on be used to change the base vector x.

Notes

This can be passed into SNESSetJacobian() when using a completely matrix-free solver, that is the B matrix is also the same matrix operator. This is used when you select -snes_mf but rarely used directly by users.

See Also

MatMFFDGetH(), MatCreateSNESMF(), MatCreateMFFD(), MATMFFD,
MatMFFDSetHHistory(), MatMFFDKSPMonitor(), MatMFFDSetFunctionError(), MatMFFDCreate(), SNESSetJacobian()

Level:developer
Location:
src/snes/mf/snesmfj.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages