DT2

An adaptive timestepper that compares the solution obtained from a single step of size dt with two steps of size dt/2 and adjusts the next timestep accordingly.

This is an adaptive, error-estimate based multi-step time step calculation scheme. It is meant to provide confidence in the convergence in time step of the results. Because it takes three time steps for every step, it is a relatively computationally expensive time stepping scheme.

For each time step, the solution is compared to what the solution would be if two half-time steps had been taken instead. This latter solution is generally more accurate, so this gives an estimate of the error. Based on the error, detailed below, and the user set acceptable errors, the time step may be accepted or rejected.

where is the solution and the time step size. If the time step is accepted, then the time step is increased to

where is the user set tolerance on the error and is the accuracy order of the time integration scheme.

If the step is rejected, both the non linear and auxiliary systems are reset, and the time step is reduced before the next attempt.

Example input syntax

The DT2 time stepping scheme is used in this example. The two half-steps are taken after the full step. In this example, the full step is always accepted. By tightening e_max to 3e-1, the reader may make the time stepper reject the full step, and lower the time step accordingly.

[Executioner]
  type = Transient

  solve_type = 'PJFNK'

  nl_rel_tol = 1e-7
  #  l_tol = 1e-5

  start_time = 0.0
  end_time = 5
  num_steps = 500000
  dtmax = 0.25

  [./TimeStepper]
    type = DT2
    dt = 0.1
    e_max = 3e-1
    e_tol = 1e-1
  [../]
[]
(../../../SoftwareDownloads/moose/test/tests/time_steppers/dt2/dt2.i)

Input Parameters

  • e_maxMaximum acceptable error.

    C++ Type:double

    Controllable:No

    Description:Maximum acceptable error.

  • e_tolTarget error tolerance.

    C++ Type:double

    Controllable:No

    Description:Target error tolerance.

Required Parameters

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

    Default:0.5

    C++ Type:double

    Controllable:No

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

  • dt1The initial time step size.

    Default:1

    C++ Type:double

    Controllable:No

    Description:The initial time step size.

  • max_increase1e+09Maximum ratio that the time step can increase.

    Default:1e+09

    C++ Type:double

    Controllable:No

    Description:Maximum ratio that the time step can increase.

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

    Default:False

    C++ Type:bool

    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>

    Controllable:No

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

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters