You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Euler-Lagrange integration accepts ~2.3x more ODE steps since #355 #379
Roughly 2.3x the accepted steps, with the saved count following (bands + every save_interval-th step). Since the EL integration dominates wall time, this is approximately a 2x runtime and solution-storage increase on every run.
The trajectory is not wrong — at the saved nodes the solution is bit-identical across #365's merges at both densities, and the resonant quantities agree to ~1e-10. The step controller is simply accepting more, smaller steps.
Ruled out
save_interval default, the save-band condition, near_q_frac, and the chunking code are textually unchanged across the range.
The example deck's [ForceFreeStates] settings are unchanged (comment drift only).
psilim/qlim are identical in the runs (0.995 / 6.200), so the domain and the edge-scan band did not move.
Bracket
5b6ba34a..1d30dfba contains only #355 (ab329276), the #357 docs merge, and a benchmarks cleanup — #355 is the only src change. Plausible mechanism: a numerical change in how the EL matrices or their splines are built (the freeze-control/locstab refactor touched Sing.jl), slightly changing the RHS smoothness and making the Vern9 controller more conservative. Not yet bisected within #355.
Reproduce
git worktree add ../pre355 5b6ba34a
# run examples/DIIID-like_ideal_example in both trees, then compare
# integration/nstep_total in gpec.h5
This could be couples to #384's efforts to address #376. Perhaps the reason for the step count change here will provide some insight into why the steps change so much with mpsi or vice versa.
Cause: #350, not #355. Commit 5f32a39ce replaced the hard-coded pass-1 mpsi = 128 of the auto grid with PASS1_INTERVALS = 1024 (GridRefinement.jl). The finer pass 1 measures more curvature, so the refined ψ grid grew from 196 to 573 knots. With the default abstol = 1e-6, the Euler-Lagrange integration takes about 8 steps per knot interval, whatever the interval's width, so the step count followed the knot count.
DIIID-like_ideal_example, ForceFreeStates only, save_interval = 1, parallel integrator. PASS1_INTERVALS is the only change, on 1d30dfba:
512 gives Δ′ within the 256–1024 spread, with no warning and 33 % fewer knots. It's worth considering, but Δ′ across this ladder itself only agrees to about 2 %.
Fix: I tested this as part of verifying #480, which scales the ODE absolute tolerance to each solution column, as Fortran DCON does. On the same 573-knot grid, steps fall from 4738 to 1464, below the 1910 before #350. Energies and Δ′ are unchanged by the tolerance. Steps still grow with knots (about 2.6 per interval); see #376. So #480 does not fix the root cause of what is going on here (and I am not going to go any deeper since I didn't have any part in the auto grid selection), but it at least counteracts it
Activity
logan-nc commentedon Aug 18, 2026
This could be couples to #384's efforts to address #376. Perhaps the reason for the step count change here will provide some insight into why the steps change so much with mpsi or vice versa.
jhalpern30 commentedon Sep 29, 2026
Cause: #350, not #355. Commit
5f32a39cereplaced the hard-coded pass-1mpsi = 128of the auto grid withPASS1_INTERVALS = 1024(GridRefinement.jl). The finer pass 1 measures more curvature, so the refined ψ grid grew from 196 to 573 knots. With the defaultabstol = 1e-6, the Euler-Lagrange integration takes about 8 steps per knot interval, whatever the interval's width, so the step count followed the knot count.DIIID-like_ideal_example, ForceFreeStates only,save_interval = 1, parallel integrator.PASS1_INTERVALSis the only change, on1d30dfba:PASS1_INTERVALSFix: I tested this as part of verifying #480, which scales the ODE absolute tolerance to each solution column, as Fortran DCON does. On the same 573-knot grid, steps fall from 4738 to 1464, below the 1910 before #350. Energies and Δ′ are unchanged by the tolerance. Steps still grow with knots (about 2.6 per interval); see #376. So #480 does not fix the root cause of what is going on here (and I am not going to go any deeper since I didn't have any part in the
autogrid selection), but it at least counteracts it