2.3 KiB
Gravity work accounting on direction rejection
The combined polynomial-enthalpy and reduced-gravity strategy checks descent twice: once when selecting the enthalpy repair, and again after lifting the repaired retained direction into gravity coordinates. A successful gravity relift performs real auxiliary work even when the second check rejects the direction before line search.
Previously, the successful-relift diagnostics were copied only after the second check. Its early rejection could therefore leave solve counts, iteration counts, timings, and the last inner residual at their earlier linear-solve snapshot. The snapshot now occurs immediately after successful direction capture and before the final descent check. Linear-report coordinates retain their existing meaning; this changes no tolerance, direction, state, or acceptance decision.
The immutable b21fa40 rotating positivity-reduced artifact records 20 gravity
solves and a positive final merit slope. Those counters can omit a successful
last relift: they do not distinguish rejection during enthalpy repair from
rejection after relifting. Its direction_repairs count also includes a chosen
positive repair fraction whose candidate subsequently fails descent. Historical
artifacts must retain these qualifications rather than being retroactively
interpreted as complete work counters.
The final c82e68d replay passes 30 provenance, trajectory, state, and report
checks. Its accepted-state file is bitwise identical; trial records and all
non-timing Newton fields match exactly. With the corrected source, its solve
and iteration counts remain 20 / 681. This establishes that the actual case
returns during enthalpy repair, before another gravity relift. The positive
slope therefore identifies a non-descent repair family. This replay does not
exercise the separate post-relift non-descent branch found by source review.
The source fix builds and passes the complete targeted regression selection
(43 serial cases / 1,886 assertions and 37 supported cases per MPI rank).
models_v3_direction/direction_regression_comparison.json records pinned old
and new source revisions, immutable executable/input hashes, every comparison,
and the conditional failure localization. It emits no localization if its
checks fail. The numerical controls and acceptance decisions are unchanged.