# DMProjectFunction
This projects the given function into the function space provided by a `DM`, putting the coefficients in a global vector.
## Synopsis
```
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMProjectFunction(DM dm, PetscReal time, PetscErrorCode (**funcs)(PetscInt, PetscReal, const PetscReal[], PetscInt, PetscScalar *, void *), void **ctxs, InsertMode mode, Vec X)
```
Collective on dm
## Input Parameters
- ***dm -*** The `DM`
- ***time -*** The time
- ***funcs -*** The coordinate functions to evaluate, one per field
- ***ctxs -*** Optional array of contexts to pass to each coordinate function. ctxs itself may be null.
- ***mode -*** The insertion mode for values
## Output Parameter
- ***X -*** vector
## Calling sequence of func
```none
func(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nc, PetscScalar u[], void *ctx);
```
- ***dim -*** The spatial dimension
- ***time -*** The time at which to sample
- ***x -*** The coordinates
- ***Nc -*** The number of components
- ***u -*** The output field values
- ***ctx -*** optional user-defined function context
## Developer Notes
This API is specific to only particular usage of `DM`
The notes need to provide some information about what has to be provided to the `DM` to be able to perform the computation.
## See Also
`DMProjectFunctionLocal()`, `DMProjectFunctionLabel()`, `DMComputeL2Diff()`
## Level
developer
## Location
src/dm/interface/dm.c
## Examples
src/dm/dt/dualspace/impls/lagrange/tutorials/ex2.c.html
src/snes/tutorials/ex12.c.html
src/snes/tutorials/ex62.c.html
src/snes/tutorials/ex63.c.html
src/snes/tutorials/ex69.c.html
src/snes/tutorials/ex71.c.html
src/snes/tutorials/ex75.c.html
src/snes/tutorials/ex76.c.html
src/snes/tutorials/ex77.c.html
src/ts/tutorials/ex11.c.html
src/ts/tutorials/ex18.c.html
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/interface/dm.c)
[Index of all DM routines](index.md)
[Table of Contents for all manual pages](/docs/manualpages/index.md)
[Index of all manual pages](/docs/manualpages/singleindex.md)