- TimeSteppers are lightweight objects used for computing suggested time steps for transient executioners.
- Use by extending
`TimeStepper`

and overriding`computeDT()`

- Using a
`TimeStepper`

is easier than extending the`Transient`

class if all you want to do is provide a custom method for picking the time step. - TimeSteppers have access to current and old values of
`time`

and`dt`

as well as access to the`Problem`

and`Executioner`

- MOOSE has several built-in TimeSteppers
`ConstantDT`

`SolutionTimeAdaptiveDT`

`IterationAdaptiveDT`

`FunctionDT`

`PostprocessorDT`

`DT2`

`TimeSequenceStepper`

- Example 16 creates a custom
`TimeStepper`

that multiplies the current time step size by a fixed ratio each time step until it reaches a user-specified minimum value.

- Take one time step of size $$$\Delta t$$$ to get $$$\hat u_{n+1}$$$ from $$$u_n$$$
- Take two time steps of size $$$\frac{\Delta t}{2}$$$ to get $$$u_{n+1}$$$ from $$$u_n$$$
- Calculate local relative time discretization error estimate $$$$\hat e_n \equiv \frac{\|u_{n+1} - \hat u_{n+1}\|_2}{\max (\|u_{n+1}\|_2, \|\hat u_{n+1}\|_2)}$$$$
- Obtain global relative time discretization error estimate $$$e_n \equiv \frac{\hat e_n}{\Delta t}$$$
- Adaptivity is based on target error tolerance $$$e_{TOL}$$$ and a maximum acceptable error tolerance $$$e_{MAX}$$$.
- If $$$e_{n} < e_{MAX}$$$, continue with a new time step size $$$$\Delta t_{n+1} \equiv \Delta t_n \cdot \left(\frac{e_{TOL}}{e_n} \right)^{1/p}$$$$ where $$$p$$$ is the global convergence rate of the time stepping scheme.
- If $$$e_{n} \ge e_{MAX}$$$, or if the solver fails, shrink $$$\Delta t$$$.

- Parameters $$$e_{TOL}$$$ and $$$e_{MAX}$$$ can be specified in the input file as
`e_tol`

and`e_max`

(in the`Executioner`

block).

- Provide a vector of time points using parameter
`time_sequence`

. `TimeSequenceStepper`

simply moves through these time points.- The time stepper automatically adds $$$t_{start}$$$ and $$$t_{end}$$$ to the sequence.
- Only time points satisfying $$$t_{start}< t <t_{end}$$$ are considered.
- If a solve fails at step $$$n$$$ an additional time point $$$t_{new} = \frac{1}{2}(t_{n+1}+t_n)$$$ is inserted and the step is resolved.

Look at Example 16