Integer timeline step length confusion
As of dbe0ac66, if I set both
dt_max to 1e-8, and
timeEnd to 1e-7 then we calculate a
timeBase of 3.725290e-16. However, we use a step length which is much smaller than the minimum:
engine_init: Absolute minimal timestep size: 3.725290e-16 Step # Time Time-step # Updates Wall-clock (ms) 0 0.000000e+00 0.000000e+00 0 0.000 1 6.250000e-09 6.250000e-09 1841127 2370.150 [ ... a bunch of steps of the same length ... ] 16 1.000000e-07 6.250000e-09 1841127 2364.122 main: done. Bye.
I'd expect a step length of the nearest multiple of 3.725290e-16 to 1e-8. Am I wrong?
I see similar behaviour whether I use
If I increase
dt_max to be greater than
timeEnd, then we appear to get stuck in ````runner_dokick
. If I then increase timeEnd``` (so ```dt_min``` is 1e-8, ```dt_max``` is 1e-6 and ```timeEnd``` is 1e-5) then I see a regular pattern of step lengths before it gets stuck with a zero-length step at t=```timeEnd```:
Step # Time Time-step # Updates Wall-clock (ms) 260 9.414062e-06 3.906250e-08 1837561 2376.584 261 9.453125e-06 3.906250e-08 54 65.733 262 9.492187e-06 3.906250e-08 104 53.476 [ ... a bunch of steps of the same length ... ] 274 9.960937e-06 3.906250e-08 474 59.235 275 9.980468e-06 1.953125e-08 172 64.479 276 1.000000e-05 1.953125e-08 2 58.446 277 1.000000e-05 0.000000e+00 1837562 2372.388
There are up to three different issues here, but I'd guess they're closely related.