Skip to main content
`Ctrl`+`K`

# 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

## Input Parameters

- matfd - the coloring context

- f - the function

- fctx - the optional user-defined function context

## Note

`f` has two possible calling configurations:

    PetscErrorCode f(SNES snes, Vec in, Vec out, void *fctx)

- snes - the nonlinear solver `SNES` object

- in - the location where the Jacobian is to be computed

- out - the location to put the computed function value

- fctx - the function context

and

    PetscErrorCode f(void *dummy, Vec in, Vec out, void *fctx)

- dummy - an unused parameter

- in - the location where the Jacobian is to be computed

- out - the location to put the computed function value

- fctx - the function context

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 Notes

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

## See Also

`Mat`, `MatFDColoring`, `MatFDColoringCreate()`, `MatFDColoringGetFunction()`, `MatFDColoringSetFromOptions()`

## Level

advanced

## Location

src/mat/matfd/fdmatrix.c

## Examples

src/snes/tutorials/ex14.c
src/tao/unconstrained/tutorials/minsurf2.c

Index of all MatFD routines
Table of Contents for all manual pages
Index of all manual pages