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
KineticForces - REFACTOR - Restore the KineticForcesControl freeze and drop dead deck keys
A develop merge into this branch silently reverted PR #367's immutability
freeze on KineticForcesControl, because the multi-species loop mutated a
deepcopy of the run control. That made the branch carry an undocumented revert
of an upstream refactor and depend on the mutability upstream removed
("KineticForcesControl had no writers in src/ at all" — this loop was exactly
such a writer, and the only one left).
Build each species' control with the @kwdef keyword constructor instead, the
idiom the freeze commit documents and that check_psi_quadrature_convergence
already uses, and restore @kwdef struct. Threading species identity through
explicit arguments was rejected: ctrl is passed whole into integrate_psi_quadgk
and onward, so that would touch several nested signatures.
Also drop six keys from the multi-ion deck that develop removed when it
replaced the integrator-selection axis with integrator= (mat_flag, ode_flag,
force_wv_symmetry, use_parallel, parallel_threads, populate_dense_xi). They
only emitted deprecation warnings, but populate_dense_xi in particular implied
a guarantee it no longer provides — had integrator= been dropped on that
belief, the run would have fallen back to the riccati default, which does not
populate dense xi, and PE/NTV would have gone quietly wrong. Document the
PerSpecies layout in the h5 schema table.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|`KineticForces/`|`<method>/` (torque/energy profiles, `EnergyIntegrals/`, `KineticMatrices/`); multi-ion runs add `PerSpecies/<species>/<method>/` with the same per-method layout, summing to the top-level total|
0 commit comments