FunctionDT

Timestepper whose steps vary over time according to a user-defined function

Description

The FunctionDT type of TimeStepper takes time steps that vary over time according to a user-defined function.

The time step is controlled by a piecewise linear function defined using the time_t and time_dt parameters. A vector of time steps is provided using the time_dt parameter. An accompanying vector of corresponding times is specified using the time_t parameter. These two vectors are used to form a time step vs. time function. The time step for a given step is computed by linearly interpolating between the pairs of values provided in the vectors.

The same procedure that is used with ConstantDT is used to reduce the time step from the user-specified value if a failed solution occurs. If a growth_factor is given, it will be applied to every time step until the current time step predicted by the function is smaller than the current time step multiplied by the growth_factor. In this sense, the growth_factor is the upper limit that any function can increase by. If no growth_factor is provided by the user, the time step will only be governed by the function.

Example Input Syntax

[Executioner]
  type = Transient

  start_time = 0
  num_steps = 10
  [./TimeStepper]
    type = FunctionDT
    function = dts
    min_dt = 0.1
  [../]
[]
(moose/test/tests/time_steppers/function_dt/function_dt_min.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.

  • functionThe name of the time-dependent function that prescribes the time step size.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the time-dependent function that prescribes the time step size.

  • growth_factor1.79769e+308Maximum ratio of new to previous timestep sizes.

    Default:1.79769e+308

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Maximum ratio of new to previous timestep sizes.

  • interpolateTrueWhether or not to interpolate DT between times. This is true by default for historical reasons.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to interpolate DT between times. This is true by default for historical reasons.

  • min_dt0The minimal dt to take.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The minimal dt to take.

  • 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.

  • time_dtThe values of dt

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of dt

  • time_tThe values of t

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The values of t

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