TimeStepper System

The method calculates the size of the time steps using either the [TimeStepper] block or the [TimeSteppers] block. The [TimeStepper] block takes only one time stepper while [TimeSteppers] block keeps the features of [TimeStepper] and also supports the composed time step size with multiple time steps inputs.

warningwarning

This page and the [TimeStepper] block will be deprecated soon in the future.

When more than one time steppers are provided, the time stepper system will add a Composition TimeStepper as the final time stepper of the transient simulation. The Composition TimeStepper takes all input time steppers except the ones used for "lower_bound" and compute the minimum time step size within "lower_bound" as the output time step size. There are a number of types of TimeStepper available. They control the time stepping in different ways, including using fixed time stepping, time stepping based on a function, or adaptive time stepping.

The time stepper system is controllable via Controls block. The user can turn on/off the time steppers to control the usage of time steppers like make time stepper(s) only active at certain time period.

Example input syntax

[Executioner]
  type = Transient
  end_time = 0.8
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  # Use as many different time steppers as we could to test the compositionDT,
  # SolutionTimeAdaptiveDT give slightly different dt per run, set rel_err = 1e-2
  # to ensure the test won't fail due to the small difference in the high-digit.
  [TimeSteppers]
    [ConstDT1]
      type = ConstantDT
      dt = 0.2
    []

    [FunctionDT]
      type = FunctionDT
      function = dts
    []

    [LogConstDT]
      type = LogConstantDT
      log_dt = 0.2
      first_dt = 0.1
    []

    [IterationAdapDT]
      type = IterationAdaptiveDT
      dt = 0.5
    []

    [Timesequence]
      type = TimeSequenceStepper
      time_sequence = '0  0.25 0.3 0.5 0.8'
    []

    [PPDT]
      type = PostprocessorDT
      postprocessor = PostDT
      dt = 0.1
    []
  []
[]
(../moose/test/tests/time_steppers/time_stepper_system/multiple_timesteppers.i)
[Executioner]
  type = Transient
  end_time = 0.8
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'

  [TimeSteppers]
    [ConstDT1]
      type = ConstantDT
      dt = 0.2
    []

    [ConstDT2]
      type = ConstantDT
      dt = 0.1
    []
  []
[]

[Controls]
  [c1]
    type = TimePeriod
    enable_objects = 'TimeStepper::ConstDT1'
    disable_objects = 'TimeStepper::ConstDT2'
    start_time = '0.3'
    end_time = '0.8'
  []
[]
(../moose/test/tests/time_steppers/time_stepper_system/active_timesteppers.i)

Available Objects

  • Moose App
  • AB2PredictorCorrectorImplements second order Adams-Bashforth method for timestep calculation.
  • CSVTimeSequenceStepperSolves the Transient problem at a sequence of given time points read in a file.
  • CompositionDTThe time stepper take all the other time steppers as input and return the minimum time step size.
  • ConstantDTTimestepper that takes a constant time step size
  • ExodusTimeSequenceStepperSolves the Transient problem at a sequence of time points taken from a specified exodus file.
  • FunctionDTTimestepper whose steps vary over time according to a user-defined function
  • IterationAdaptiveDTAdjust the timestep based on the number of iterations
  • LogConstantDTTimeStepper which imposes a time step constant in the logarithmic space
  • PostprocessorDTComputes timestep based on a Postprocessor value.
  • SolutionTimeAdaptiveDTCompute simulation timestep based on actual solution time.
  • TimeSequenceFromTimesSolves the Transient problem at a sequence of time points taken from a specified Times object.
  • TimeSequenceStepperSolves the Transient problem at a sequence of given time points.

Available Actions

Input Parameters

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified only the blocks named will be visited and made active

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified blocks matching these identifiers will be skipped.

Optional Parameters

  • isObjectActionTrueIndicates that this is a MooseObjectAction.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Indicates that this is a MooseObjectAction.

Advanced Parameters