Require valid states for SPECTRE physical losses#496
Merged
Conversation
This was referenced Jul 16, 2026
krystophny
force-pushed
the
agent/spectre-valid-crossings-clean
branch
from
July 17, 2026 06:33
d5f8688 to
99758d8
Compare
krystophny
changed the base branch from
agent/liberal-generic-newton-clean
to
agent/nonfatal-recovery-accounting-clean
July 17, 2026 06:33
krystophny
force-pushed
the
agent/spectre-valid-crossings-clean
branch
from
July 17, 2026 06:40
99758d8 to
7997ef8
Compare
Base automatically changed from
agent/nonfatal-recovery-accounting-clean
to
main
July 17, 2026 07:49
krystophny
force-pushed
the
agent/spectre-valid-crossings-clean
branch
from
July 17, 2026 07:52
7997ef8 to
b4789a2
Compare
krystophny
enabled auto-merge (squash)
July 17, 2026 07:52
krystophny
added a commit
that referenced
this pull request
Jul 17, 2026
## Summary - keep Newton warning recovery bounded; the obsolete unbounded finite-iterate policy from closed PR #495 is not included - recover failed non-SPECTRE symplectic steps through the established adaptive RK path, cap recovery at 10,000 internal steps, and stop repeating identical failed recovery work - reject non-finite, non-local, or out-of-domain RK and symplectic states before they can be committed or mislabeled as physical LCFS losses - retain the reviewed SPECTRE hardening and the independent fixes from PRs #494, #496, #497, and #498 - compare golden outcomes by physical contract: identities, initial invariants, exit status/time, valid resolved endpoints, and strict physical events; completed chaotic survivor phase points may decorrelate ## Validation - full `fo` at `c57f419`: static analysis, build, complete test suite, and lint passed in 304.4 s - focused `test_sympl_testfield` and `test_newton_solver_status` pass - 13 golden-comparator unit tests pass - fresh Albert golden run completed without the former stall; all 32 markers resolved, every endpoint was finite, and mapped final radius stayed in 0.017 to 1.013 - the golden comparison identifies 27 recovered numerical exits and corrects three old physical-loss records whose reference endpoints had radial coordinates of roughly 5e5 to 2e6 PR #495 was closed because its generic policy admitted arbitrarily large finite Newton iterates and produced invalid physical outcomes. This branch was rebuilt without it. The final performance comparison will be rerun without the concurrent large LFS archive upload before merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prevents numerical failures or non-finite interface states from becoming physical loss events.
The complete stacked branch passes the full
fostatic, build, test, and lint pipeline.