# TSSetPostStep
Sets the general-purpose function called once at the end of each time step. 
## Synopsis
```
#include "petscts.h"  
PetscErrorCode TSSetPostStep(TS ts, PetscErrorCode (*func)(TS))
```
Logically Collective on TS


## Input Parameters

- ***ts   -*** The TS context obtained from TSCreate()
- ***func -*** The function



## Calling sequence of func
```none
func (TS ts);
```


## Notes
The function set by TSSetPostStep() is called after each successful step. The solution vector X
obtained by TSGetSolution() may be different than that computed at the step end if the event handler
locates an event and TSPostEvent() modifies it. Use TSSetPostEvaluate() if an unmodified solution is needed instead.




## See Also
 `TSSetPreStep()`, `TSSetPreStage()`, `TSSetPostEvaluate()`, `TSGetTimeStep()`, `TSGetStepNumber()`, `TSGetTime()`, `TSRestartStep()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/interface/ts.c.html#TSSetPostStep">src/ts/interface/ts.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex48.c.html">src/ts/tutorials/ex48.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex77.c.html">src/ts/tutorials/ex77.c.html</A><BR>


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


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