• 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

# Built-in TimeSteppers

• 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). # TimeSequenceStepper • 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.