:orphan:
# TSGetSolution
Returns the solution at the present timestep. It is valid to call this routine inside the function that you are evaluating in order to move to the new timestep. This vector not changed until the solution at the next timestep has been calculated.
## Synopsis
```
#include "petscts.h"
PetscErrorCode TSGetSolution(TS ts, Vec *v)
```
Not Collective, but v returned is parallel if ts is parallel
## Input Parameter
- ***ts -*** the `TS` context obtained from `TSCreate()`
## Output Parameter
- ***v -*** the vector containing the solution
## Note
If you used `TSSetExactFinalTime`(ts,`TS_EXACTFINALTIME_MATCHSTEP`); this does not return the solution at the requested
final time. It returns the solution at the next timestep.
## See Also
[](ch_ts), `TS`, `TSGetTimeStep()`, `TSGetTime()`, `TSGetSolveTime()`, `TSGetSolutionComponents()`, `TSSetSolutionFunction()`
## Level
intermediate
## Location
src/ts/interface/ts.c
## Examples
src/ts/tutorials/ex14.c
src/ts/tutorials/ex48.c
src/ts/tutorials/ex53.c
src/ts/tutorials/ex76.c
src/ts/tutorials/ex77.c
src/ts/utils/dmplexlandau/tutorials/ex1.c
src/ts/utils/dmplexlandau/tutorials/ex2.c
---
[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](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)