CompositionDT

The time stepper takes all the other time steppers as input and returns the minimum time step size.

Description

The CompositionDT TimeStepper takes multiple time steppers as input and computes the minimum time step size among all time steppers as output. If any time sequence stepper(s) is supplied for input, CompositionDT will compare the computed minimum time step size with the one needs to hit the time point, then select the smaller value as output. An optional parameter "lower_bound"is provided to set a lower bound for the computed time step size, and enable growth driven by a single time stepper.

The composition rules are listed with priority rank: 1. The time points from time sequence stepper(s) must be hit; 2. The time step size can not go below the "lower_bound"; 3. Take the minimum time step value of all input time steppers.

An example of using multiple time steppers:

[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)

Input Parameters

  • cutback_factor_at_failure0.5Factor to apply to timestep if a time step fails to converge.

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Factor to apply to timestep if a time step fails to converge.

  • initial_dtInitial value of dt

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial value of dt

  • lower_boundThe maximum of these TimeSteppers will form the lower bound on the time step size. A single or multiple time steppers may be specified.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The maximum of these TimeSteppers will form the lower bound on the time step size. A single or multiple time steppers may be specified.

  • reset_dtFalseUse when restarting a calculation to force a change in dt.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Use when restarting a calculation to force a change in dt.

Optional Parameters

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

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

    Unit:(no unit assumed)

    Controllable:No

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

  • enableTruewhether or not to enable the time stepper

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:Yes

    Description:whether or not to enable the time stepper

Advanced Parameters