petsc-3.10.5 2019-03-28
Report Typos and Errors

# 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"
    #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 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() as the Jacobian evaluation function argument 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. (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