40 real(dp),
public,
protected ::
dt_max = 1.0e-11_dp
43 real(dp),
public,
protected ::
dt_min = 1.0e-14_dp
58 type(cfg_t),
intent(inout) :: cfg
59 real(dp) :: default_cfl_number = 0.5_dp
60 character(len=name_len) :: integrator
63 call cfg_add_get(cfg,
"dt_max",
dt_max, &
64 "The maximum timestep (s)")
65 call cfg_add_get(cfg,
"dt_min",
dt_min, &
66 "The minimum timestep (s)")
68 "Safety factor for the time step")
72 "If > 0, a density to control the accuracy of the chemistry time step")
74 "Limit dt to prevent negative densities due to loss reactions")
78 "Maximal relative increase dt for the next iteration")
80 integrator =
"heuns_method"
81 call cfg_add_get(cfg,
"time_integrator", integrator, &
82 "Time integrator (use arbitrary value to see options)")
89 print *,
"Use one of the following time integrators:"
93 error stop
"Unknown time integrator"
Module to set the time step.
integer, public, protected time_integrator
Which time integrator is used.
real(dp), dimension(dt_num_cond), public dt_limits
integer, parameter, public dt_num_cond
real(dp), public, protected dt_max
real(dp), public, protected dt_safety_factor
integer, parameter, public dt_ix_cfl
subroutine, public dt_initialize(cfg)
Initialize the time step module.
real(dp), public, protected dt_chemistry_nmin
If > 0, a density to control the accuracy of the chemistry time step.
real(dp), public, protected dt_min
real(dp), public, protected dt_max_growth_factor
Maximal relative increase dt for the next iteration.
integer, parameter, public dt_ix_rates
logical, public, protected dt_chemistry_limit_loss
Limit dt to prevent negative densities due to loss reactions.
integer, parameter, public dt_ix_drt
real(dp), public, protected dt_cfl_number
CFL number to use.
integer, parameter, public dt_ix_other
real(dp), parameter undefined_real
Undefined number.