# TimeIntegrator System

The MOOSE framework implements a number of time integration methods, which include both explicit and implicit methods, of varying truncation error orders and stability properties:

## Execution of a Time Step

For most time integrators, at least one nonlinear solve is required per time step; for others (e.g., ActuallyExplicitEuler), only a linear solve is required. If solution fails, then that time step is aborted, and depending on parameters of the Executioner and TimeStepper, the transient may abort completely or just decrease the time step size and try again.

note:Multi-stage time integrator implementation details

For multi-stage time integrators such as ExplicitTVDRK2, a check is performed after each stage to verify nonlinear convergence; if the nonlinear system is not converged, then the time step is aborted immediately. This is achieved by simply returning prematurely from the solve() function and allowing the post-solve() convergence check to report failure, since the convergence flag should still be set to false. If convergence checks are not after each stage, then only the last stage will be required to converge; other stages could just reach the maximum number of nonlinear iterations without convergence and proceed to the next stage anyway.

## Actions

Actions associated with the TimeIntegrator system are the following: