# MatFDColoringSetFunction
Sets the function to use for computing the Jacobian. 
## Synopsis
```
#include "petscmat.h" 
PetscErrorCode MatFDColoringSetFunction(MatFDColoring matfd, PetscErrorCode (*f)(void), void *fctx)
```
Logically Collective on matfd


## Input Parameters

- ***coloring -*** the coloring context
- ***f -*** the function
- ***fctx -*** the optional user-defined function context



## Calling sequence of (*f) function
For `SNES`:    PetscErrorCode (*f)(SNES,Vec,Vec,void*)
If not using `SNES`: PetscErrorCode (*f)(void *dummy,Vec,Vec,void*) and dummy is ignored




## Note
This function is usually used automatically by `SNES` (when one uses `SNESSetJacobian()` with the argument
`SNESComputeJacobianDefaultColor()`) and only needs to be used by someone computing a matrix via coloring directly by
calling `MatFDColoringApply()`


## Fortran Note
In Fortran you must call `MatFDColoringSetFunction()` for a coloring object to
be used without `SNES` or within the `SNES` solvers.


## See Also
 `MatFDColoring`, `MatFDColoringCreate()`, `MatFDColoringGetFunction()`, `MatFDColoringSetFromOptions()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/matfd/fdmatrix.c.html#MatFDColoringSetFunction">src/mat/matfd/fdmatrix.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex14.c.html">src/snes/tutorials/ex14.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/tao/unconstrained/tutorials/minsurf2.c.html">src/tao/unconstrained/tutorials/minsurf2.c.html</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/matfd/fdmatrix.c)


[Index of all MatFD routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
