- dtInitial time step size
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Initial time step size
- e_maxMaximum acceptable error.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Maximum acceptable error.
- e_tolTarget error tolerance.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Target error tolerance.
AB2PredictorCorrector
Implements second order Adams-Bashforth method for timestep calculation.
This time stepper first adds an AdamsPredictor to the problem. The predictor uses previous solutions to compute a predicted solution vector. This prediction is then compared using a norm to the solution. If the error is lower than "e_max", then the time step is accepted. If not, then it is reduced.
The time step is regularly increased based on the "steps_between_increase" parameter. The magnitude of the increase is based on the magnitude of the prediction error.
The AB2PredictorCorrector
may be used with the following three time integration schemes: implicit Euler (default in MOOSE), Crank Nicholson and 2nd order backward differences (BDF2).
Example input syntax
In this example, we solve a simple heating problem with backwards differences and a predictor corrector scheme. The prediction and correction steps can be observed during the solve.
[Executioner]
type = Transient
scheme = 'BDF2'
#scheme = 'crank-nicolson'
start_time = 0
num_steps = 4
nl_abs_tol = 1e-15
petsc_options = '-snes_converged_reason'
abort_on_solve_fail = true
[./TimeStepper]
type = AB2PredictorCorrector
dt = .01
e_max = 10
e_tol = 1
[../]
[]
(moose/test/tests/time_integrators/aee/aee.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.
- max_increase1e+09Maximum ratio that the time step can increase.
Default:1e+09
C++ Type:double
Unit:(no unit assumed)
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
Unit:(no unit assumed)
Controllable:No
Description:Use when restarting a calculation to force a change in dt.
- scaling_parameter0.8scaling parameter for dt selection
Default:0.8
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:scaling parameter for dt selection
- start_adapting2when to start taking adaptive time steps
Default:2
C++ Type:int
Unit:(no unit assumed)
Controllable:No
Description:when to start taking adaptive time steps
- steps_between_increase1the number of time steps before recalculating dt
Default:1
C++ Type:int
Unit:(no unit assumed)
Controllable:No
Description:the number of time steps before recalculating 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