Scope
SIMPLE has the least to move. Its random-number use in the samplers and collision operator can adopt fortnum_rng with explicit per-stream state, and any generic Runge-Kutta helpers can adopt fortnum_ode. The symplectic and physics integrators stay in SIMPLE; only generic RK helpers are candidates.
Planned leaves
| leaf |
replaces |
needs |
model |
| audit RNG use, then swap to fortnum_rng |
src/samplers.f90, src/collis_alphas.f90 random-number use |
fortnum M3 (rng) |
opus audit, sonnet swap |
| audit generic RK vs symplectic integrators |
generic RK helpers in SIMPLE |
fortnum M2 (ode) |
opus |
The RNG leaf moves the sampler and collision random-number draws to fortnum_rng with explicit per-stream state for reproducible parallel runs; the audit fixes the call sites before the swap. The integrator audit keeps symplectic and orbit integrators in SIMPLE and moves only generic RK helpers, if any.
Leaf issues are created from this table only once the named fortnum milestone is closed. Until then this tracker is the only issue.
Execution conventions
Model ladder (implementation):
- haiku: label/milestone housekeeping, checklist updates, re-export boilerplate. No algorithms.
- sonnet: fully specified ports (source path + SHA given), wrappers, CI fixes with a clear failing log.
- opus: build-system and CI scaffolding, multi-file refactors, ports that change APIs.
- fable: API design issues, clean-room algorithm work, review of opus-implemented PRs.
Review ladder: sonnet PRs reviewed by opus; opus PRs reviewed by fable; haiku changes gated by CI only.
PR rules:
- One leaf issue = one PR. Branch from the base named in the issue.
- PR title = issue title. Body:
Closes #N plus a ## Verification section with real failing-before and passing-after output.
- Squash merge. Stacked PRs only where the issue names a non-main base.
Executor rule: if any issue under "Blocked by" is open, stop and report instead of starting.
Umbrella
itpplasma/libneo#291
Scope
SIMPLE has the least to move. Its random-number use in the samplers and collision operator can adopt fortnum_rng with explicit per-stream state, and any generic Runge-Kutta helpers can adopt fortnum_ode. The symplectic and physics integrators stay in SIMPLE; only generic RK helpers are candidates.
Planned leaves
src/samplers.f90,src/collis_alphas.f90random-number useThe RNG leaf moves the sampler and collision random-number draws to fortnum_rng with explicit per-stream state for reproducible parallel runs; the audit fixes the call sites before the swap. The integrator audit keeps symplectic and orbit integrators in SIMPLE and moves only generic RK helpers, if any.
Leaf issues are created from this table only once the named fortnum milestone is closed. Until then this tracker is the only issue.
Execution conventions
Model ladder (implementation):
Review ladder: sonnet PRs reviewed by opus; opus PRs reviewed by fable; haiku changes gated by CI only.
PR rules:
Closes #Nplus a## Verificationsection with real failing-before and passing-after output.Executor rule: if any issue under "Blocked by" is open, stop and report instead of starting.
Umbrella
itpplasma/libneo#291