Summary
The forward Euler–Lagrange integration in ForceFreeStates (FFS) stores ξ only at accepted ODE steps (every save_interval-th step, plus near rational surfaces). PerturbedEquilibrium and KineticForces interpolate ξ(ψ) between those stored points, so their accuracy, NTV torque in particular, follows the step density chosen by the ODE error control rather than a resolution chosen for the downstream calculation.
Evidence
Proposal
Sample ξ on a fixed ψ grid owned by PerturbedEquilibrium, evaluated from the solver's dense output between accepted steps, so downstream accuracy is set by that grid and not by step control. save_interval would then only control what is written for diagnostics.
Split from #93, whose remaining items are tracked in #481, #464 and this issue.
Summary
The forward Euler–Lagrange integration in ForceFreeStates (FFS) stores ξ only at accepted ODE steps (every
save_interval-th step, plus near rational surfaces). PerturbedEquilibrium and KineticForces interpolate ξ(ψ) between those stored points, so their accuracy, NTV torque in particular, follows the step density chosen by the ODE error control rather than a resolution chosen for the downstream calculation.Evidence
save_intervalfrom 3 to 1 to recover NTV accuracy, and NTV torque moved +1.25 % onsolovev_kinetic_ntv, toward the converged reference.diiid_n1: saved steps 2675 → 1440). Any change to step control therefore also moves ξ sampling, which couples ODE tolerance changes to PE/NTV results.Proposal
Sample ξ on a fixed ψ grid owned by PerturbedEquilibrium, evaluated from the solver's dense output between accepted steps, so downstream accuracy is set by that grid and not by step control.
save_intervalwould then only control what is written for diagnostics.Split from #93, whose remaining items are tracked in #481, #464 and this issue.