# TSPSEUDO
Solve steady state ODE and DAE problems with pseudo time stepping This method solves equations of the form

```none
F(X,Xdot) = 0
```

for steady state using the iteration

```none
[G'] S = -F(X,0)
```
```none
X += S
```

where

```none
G(Y) = F(Y,(Y-X)/dt)
```

This is linearly-implicit Euler with the residual always evaluated "at steady
state".  See note below.


## Options Database Keys

- ***-ts_pseudo_increment <real> -*** ratio of increase dt
- ***-ts_pseudo_increment_dt_from_initial_dt <truth> -*** Increase dt as a ratio from original dt
- ***-ts_pseudo_fatol <atol> -*** stop iterating when the function norm is less than atol
- ***-ts_pseudo_frtol <rtol> -*** stop iterating when the function norm divided by the initial function norm is less than rtol





## Notes
The residual computed by this method includes the transient term (Xdot is computed instead of
always being zero), but since the prediction from the last step is always the solution from the
last step, on the first Newton iteration we have

```none
Xdot = (Xpredicted - Xold)/dt = (Xold-Xold)/dt = 0
```

Therefore, the linear system solved by the first Newton iteration is equivalent to the one
described above and in the papers.  If the user chooses to perform multiple Newton iterations, the
algorithm is no longer the one described in the referenced papers.


## References

- **** -*** Todd S. Coffey and C. T. Kelley and David E. Keyes, Pseudotransient Continuation and Differential Algebraic Equations, 2003.
- **** -*** C. T. Kelley and David E. Keyes, Convergence analysis of Pseudotransient Continuation, 1998.



## See Also
 [](chapter_ts), `TSCreate()`, `TS`, `TSSetType()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/impls/pseudo/posindep.c.html#TSPSEUDO">src/ts/impls/pseudo/posindep.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex1.c.html">src/ts/tutorials/ex1.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex1f.F90.html">src/ts/tutorials/ex1f.F90.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex24.c.html">src/ts/tutorials/ex24.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex26.c.html">src/ts/tutorials/ex26.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/tutorials/ex42.c.html">src/ts/tutorials/ex42.c.html</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ts/impls/pseudo/posindep.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)  
