# PetscDSSetUpdate
Set the pointwise update function for a given field 
## Synopsis
```
#include "petscds.h" 
PetscErrorCode PetscDSSetUpdate(PetscDS ds, PetscInt f, void (*update)(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar uNew[]))
```
Not collective


## Input Parameters

- ***ds     -*** The `PetscDS`
- ***f      -*** The field number
- ***update -*** update function



## Calling sequence for the callback update
```none
  update(PetscInt dim, PetscInt Nf, PetscInt NfAux,
         const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[],
         const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[],
         PetscReal t, const PetscReal x[], PetscScalar uNew[])
```


- ***dim -*** the spatial dimension
- ***Nf -*** the number of fields
- ***uOff -*** the offset into u[] and u_t[] for each field
- ***uOff_x -*** the offset into u_x[] for each field
- ***u -*** each field evaluated at the current point
- ***u_t -*** the time derivative of each field evaluated at the current point
- ***u_x -*** the gradient of each field evaluated at the current point
- ***aOff -*** the offset into a[] and a_t[] for each auxiliary field
- ***aOff_x -*** the offset into a_x[] for each auxiliary field
- ***a -*** each auxiliary field evaluated at the current point
- ***a_t -*** the time derivative of each auxiliary field evaluated at the current point
- ***a_x -*** the gradient of auxiliary each field evaluated at the current point
- ***t -*** current time
- ***x -*** coordinates of the current point
- ***uNew -*** new field values at the current point





## See Also
 `PetscDS`, `PetscDSGetResidual()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/dt/interface/dtds.c.html#PetscDSSetUpdate">src/dm/dt/interface/dtds.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/dt/interface/dtds.c)


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