Skip to content

ForceFreeStates: eigenvalue cross-check diagnostic between integration paths #254

Description

@logan-nc

When both Route A (legacy Euler-Lagrange) and Route B (chunked-Riccati) are available — for example with the concurrent dual-route execution proposed in the companion issue — compare the first eigenvalue et[1] from each path on every run and emit:

  • >1% relative discrepancy@warn
  • >10% relative discrepancy@error

Write Route B's odet_riccati to HDF5 as a diagnostic so users can inspect the two estimates side by side.

Why: the cross-check is a cheap sanity check that has already caught real drift. On feature/forcefreestates-rewrite (PR #252), it flagged ~4.5% drift on a Solovev case that was otherwise silent. It also serves as a regression net while the chunked-Riccati path matures.

Reference implementation: cross-check logic in src/ForceFreeStates/Integration.jl on feature/forcefreestates-rewrite (PR #252).

Acceptance:

  • Cross-check runs when both odet (Route A) and odet_riccati (Route B) are populated.
  • Tolerances configurable but default to >1% warn / >10% error.
  • odet_riccati written to HDF5 under a clearly named diagnostic group.
  • One regression test exercising both the warn and error branches with synthetic eigenvalues.

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

    featureNew capability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions