Skip to content

Qualify full Runge–Kutta checkpoint continuation #596

Open

Description

@jtravs

What is missing

RK resumes currently restore a field and reset the proposal, norm memory and controller history; the RK march exports no complete continuation snapshot. This is a field restart, not preservation of the complete numerical session. Read, not run, against main at eee57c65, particularly StepDriver.set_initial and the resume implementation.

Why it matters

Users and tests must distinguish a qualified field restart from complete continuation. Saving a few controller scalars alone does not establish continuation: recycled stages/caches, the internal field, monitor state and cursors may also matter. Inverting the saved true-power/optics conversion may introduce rounding, so an exact continuation claim needs its own storage and numerical argument.

Context

SEP 47 / PR #589, review R9, and tracking #588. On 2026-11-09 John Travers approved recording retention/restoration/reset decisions and reasons in SEP 47, with a warning when expected Adams history was omitted, while deferring full RK continuation to separately qualified work. This issue tracks the deferred capability, not a blocker for SEP 47. SEP 42 supplies existing restart compatibility policy; #128 concerns monitor restoration and #129 failed Adams checkpoints. Neither supplies full RK continuation.

To do

  • Inventory every RK method's state required at a committed endpoint: internal field, proposal/norm memory, recycled stages, relevant monitor/controller state, replay and observation cursors. Distinguish reconstructible resources from numerical state.
  • Propose a portable checkpoint representation, size/retention policy and compatibility rules under the current session/output design. A substantive contract change starts from an accepted SEP.
  • Qualify uninterrupted versus checkpointed continuation on the reference and native CPU, with deterministic exact lifecycle witnesses and SEP 25 numerical bounds where arithmetic legitimately differs. Exercise supported GPU/MLX scope separately and refuse unsupported cases explicitly.
  • Cover rejection, stops, dense observations, field-free output, incompatible snapshots, changed permitted restart settings and failures during export. Keep today's documented field-restart path working.
  • Document precisely what is restored versus reset and what equality is actually guaranteed; add the release-note fragment.

Done when

The inventory and representation account for all retained numerical state, short continuation tests meet predeclared exact or numerical contracts, existing field restarts still pass, and the manual makes no stronger claim than the qualified behaviour. Do not label controller-scalar persistence alone as exact RK continuation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: outputOutput files, processing and plottingenhancementNew feature or requestpriority: lowWorth doing, no hurry

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions