petscmaster 20170819
MatMFFDComputeJacobian
Tells the matrixfree 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"
#include "petscdm.h"
PetscErrorCode MatMFFDComputeJacobian(SNES snes,Vec x,Mat jac,Mat B,void *dummy)
Logically Collective on SNES
Input Parameters
 snes   the nonlinear solver context

 x   the point at which the Jacobian vector products will be performed

 jac   the matrixfree Jacobian object

 B   either the same as jac or another matrix type (ignored)

 flag   not relevent for matrixfree 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() as the Jacobian evaluation function argument
when using a completely matrixfree 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. (All this routine does is call MatAssemblyBegin/End() on
the Mat jac.)
See Also
MatMFFDGetH(), MatCreateSNESMF(), MatCreateMFFD(), MATMFFD,
MatMFFDSetHHistory(), MatMFFDSetFunctionError(), MatCreateMFFD(), SNESSetJacobian()
Level:developer
Location:src/snes/mf/snesmfj.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages