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:

Available Objects

  • Moose App
  • AStableDirk4Fourth-order diagonally implicit Runge Kutta method (Dirk) with three stages plus an update.
  • ActuallyExplicitEulerImplementation of Explicit/Forward Euler without invoking any of the nonlinear solver
  • BDF2Second order backward differentiation formula time integration scheme.
  • CentralDifferenceImplementation of explicit, Central Difference integration without invoking any of the nonlinear solver
  • CrankNicolsonCrank-Nicolson time integrator.
  • ExplicitEulerTime integration using the explicit Euler method.
  • ExplicitMidpointTime integration using the explicit midpoint method.
  • ExplicitSSPRungeKuttaExplicit strong stability preserving Runge-Kutta methods
  • ExplicitTVDRK2Explicit TVD (total-variation-diminishing) second-order Runge-Kutta time integration method.
  • HeunHeun's (aka improved Euler) time integration method.
  • ImplicitEulerTime integration using the implicit Euler method.
  • ImplicitMidpointSecond-order Runge-Kutta (implicit midpoint) time integration.
  • LStableDirk2Second order diagonally implicit Runge Kutta method (Dirk) with two stages.
  • LStableDirk3Third order diagonally implicit Runge Kutta method (Dirk) with three stages.
  • LStableDirk4Fourth-order diagonally implicit Runge Kutta method (Dirk) with five stages.
  • NewmarkBetaComputes the first and second time derivative of variable using Newmark-Beta method.
  • RalstonRalston's time integration method.

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.

commentnote: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:

Available Actions