Clear unavailable gravity measurements before each attempt

This commit is contained in:
2026-09-17 11:01:13 -04:00
parent 7e1ab69fcd
commit a2871e11e2
4 changed files with 77 additions and 7 deletions

View File

@@ -81,9 +81,17 @@ export namespace mean_field::solver::nonlinear {
std::uint64_t gravityPreparedFailures{0};
bool compactGravityOperator{false};
bool compactGravityInverse{false};
// Coordinates of the evaluation's lastLinearSolve report. A later
// feasibility relift or trial solve has its own auxiliary diagnostics
// and does not replace that report or relabel its stored norms.
LinearReportSpace lastLinearReportSpace{LinearReportSpace::full_system};
double gravitySolveSeconds{0.0};
// Last completed auxiliary solve; a later failure before Solve leaves
// this value and the cumulative counters unchanged.
double lastGravityTrueResidual{0.0};
// Current gravity attempt: NaN until that attempt measures the value.
// Candidates rejected before invoking gravity leave its prior attempt
// untouched because no auxiliary work was attempted.
double lastGravityCorrectionNorm{0.0};
double lastGravityPreparedDefect{0.0};
double lastGravityAffineDisagreement{0.0};