Restore warning-mode orbit recovery without Newton stalls#499
Conversation
## Summary - add the explicit target-order dependency required when `diag_albert.f90` consumes `pyplot_module.mod` from the separate `pyplot` target - prevent clean parallel Ninja builds from compiling `diag_albert` before the module file exists ## Evidence The CGAL wall CI job on PR #499 failed in a clean parallel build with: ``` Fatal Error: Cannot open module file ‘pyplot_module.mod’ ``` The existing link edge orders final linking but did not reliably order compilation across targets. This PR adds no source or runtime behavior change. ## Validation - clean `fo build` passed - `fo` passed all stages in 308.3 s
88acc6c to
c57f419
Compare
c57f419 to
25d458e
Compare
|
Restacked onto merged main b242fa6 after #494, #496, #501 (replacement for automatically closed #497), and #498. New head 25d458e contains only the six unique recovery commits. Its Git tree is byte-identical to reviewed/tested head c57f419 (tree 426180269b6ce1838ad9c8542acdb947e623579c); the force-push changes history only. |
|
CI review: 14/15 golden cases passed. The only failure was meiss_coils, where one valid reference survivor ended at rho=0.999893 and the recovered result crossed the LCFS at rho=1.0; runtime improved by 16.1%. Commit b4412d9 adds a bounded golden rule for completed-to-LCFS transitions only when the reference endpoint is within 1e-3 of the LCFS and both endpoints are valid. A companion test proves an interior survivor changing to loss still fails. Comparator suite: 15 passed. |
Summary
Validation
foatc57f419: static analysis, build, complete test suite, and lint passed in 304.4 stest_sympl_testfieldandtest_newton_solver_statuspassPR #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.