PETSc version 3.17.4
Fix/Edit manual page

# MatMFFDSetFunction

Sets the function used in applying the matrix free.

### Synopsis

    #include "petscmat.h"
    PetscErrorCode  MatMFFDSetFunction(Mat mat,PetscErrorCode (*func)(void*,Vec,Vec),void *funcctx)

Logically Collective on Mat

### Input Parameters

| mat | - the matrix free matrix created via MatCreateSNESMF() or MatCreateMFFD()
| func | - the function to use
| funcctx | - optional function context passed to function

### Calling Sequence of func

        func (void *funcctx, Vec x, Vec f)

| funcctx | - user provided context
| x | - input vector
| f | - computed output function

### Notes

If you use this you MUST call MatAssemblyBegin()/MatAssemblyEnd() on the matrix free matrix inside your compute Jacobian routine

If this is not set then it will use the function set with SNESSetFunction() if MatCreateSNESMF() was used.

### See Also

MatCreateSNESMF(),MatMFFDGetH(), MatCreateMFFD(), MATMFFD,
MatMFFDSetHHistory(), MatMFFDResetHHistory(), SNESetFunction()

### Level

advanced

### Location

src/mat/impls/mffd/mffd.c

### Examples

src/snes/tutorials/ex22.c.html

### Implementations

MatMFFDSetFunction_MFFD(Mat mat,PetscErrorCode (*func) in src/mat/impls/mffd/mffd.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages