Skip to content

Tracker: adopt derivative-ready fortnum for RNG and generic ODE helpers #371

@krystophny

Description

@krystophny

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions