Document matched Krylov safeguard results and limitations
This commit is contained in:
@@ -1,12 +1,17 @@
|
|||||||
# Krylov information retention and correction reuse
|
# Krylov correction safeguard: observed outcome
|
||||||
|
|
||||||
Baseline: `80cc3d8`. This branch evaluates two distinct effects without adding
|
Retain the true-residual initial-guess safeguard as a limited inner-solver
|
||||||
public options or changing physical specifications, normalization, preconditioner,
|
robustness improvement. The matched n=1 solution is unchanged, and the capped
|
||||||
linear tolerances, or nonlinear acceptance.
|
n=1.5 run uses fewer linear iterations and avoids its control's late linear
|
||||||
|
failure. It does not resolve the n=1.5 nonlinear plateau or establish full
|
||||||
|
physical validation.
|
||||||
|
|
||||||
The first control changes the existing FGMRES restart setting from 40 to 160.
|
Tested guard revision: `1911a26a9a283eed7e53b03fc3481ee894e61bfb`.
|
||||||
Frozen solves in the audit established linear benefits; live Newton runs must
|
Matched control revision: `9bd4af699650e2a6bbe795c618e6ef3fbcb48e12`.
|
||||||
establish whether the resulting corrections remain useful and physically accurate.
|
The underlying numerical snapshot is `80cc3d8`; the safeguard implementation is
|
||||||
|
`ed75830`. Both live comparisons use restart 160, omit the central constraint,
|
||||||
|
allow eight Newton attempts and 200 linear iterations, and require a true linear
|
||||||
|
residual/RHS <=0.03. Newton stopping uses atol=0 and rtol=1e-8.
|
||||||
|
|
||||||
The production candidate safeguards a supplied linear initial guess using its
|
The production candidate safeguards a supplied linear initial guess using its
|
||||||
true residual under the current operator. It retains the guess when
|
true residual under the current operator. It retains the guess when
|
||||||
@@ -14,24 +19,92 @@ true residual under the current operator. It retains the guess when
|
|||||||
extra operator action, included in reported counts and solve time. Zero guesses
|
extra operator action, included in reported counts and solve time. Zero guesses
|
||||||
do not incur an extra action. This is neither Krylov basis recycling nor a
|
do not incur an extra action. This is neither Krylov basis recycling nor a
|
||||||
guarantee of fewer iterations: a smaller initial residual can still excite a
|
guarantee of fewer iterations: a smaller initial residual can still excite a
|
||||||
harder set of modes. The candidate must earn its cost in matched live runs.
|
harder set of modes.
|
||||||
|
|
||||||
The retained `(1-alpha)p` heuristic from damped Newton remains intact, as does
|
The retained `(1-alpha)p` heuristic from damped Newton remains intact, as does
|
||||||
the existing backend API. The safeguard only declines a guess that increases
|
the existing backend API. The safeguard only declines a guess that increases
|
||||||
the current true defect. It also handles a nonfinite operator action on an
|
the current true defect. It also handles a nonfinite operator action on an
|
||||||
otherwise finite guess by choosing the finite zero guess, collectively across
|
otherwise finite guess by choosing the finite zero guess, collectively across
|
||||||
the communicator. Existing input checks still reject nonfinite supplied vectors.
|
the communicator. Existing input checks still reject nonfinite supplied vectors.
|
||||||
|
There is no public API or policy-option change, and no change to physical
|
||||||
|
specifications, normalization, preconditioner, tolerances or nonlinear acceptance.
|
||||||
|
The reported initial residual belongs to the effective guess after safeguarding;
|
||||||
|
it does not expose the raw residual of a discarded guess.
|
||||||
|
|
||||||
Required comparisons:
|
## Matched live evidence
|
||||||
|
|
||||||
- Same no-phase n=1.5 seed at restart 160 with baseline and candidate; record
|
At n=1, J=0.05, both runs converge in seven full steps and 292 linear iterations
|
||||||
each initial linear residual relative to its RHS, accepted step lengths,
|
to F=3.38036278e-11. Saved state, initial/final physical tables, layout, block
|
||||||
true defects, total time and physical endpoint diagnostics.
|
residuals and trial histories are byte-identical. Every non-time Newton history
|
||||||
- n=1 controls with full steps, where the Newton heuristic already produces
|
field also matches. All eight q14/q18 energy/force virials with P(h) and P(rho)
|
||||||
zero guesses; their physical trajectory should remain unchanged.
|
pass 1e-5; the largest is 3.73465327e-7. Full steps leave zero guesses, so this
|
||||||
- Existing beneficial-warm-start test plus the new adverse-guess regression.
|
is a regression control, not evidence that the safeguard accelerates cold solves.
|
||||||
|
|
||||||
Do not promote this change merely because the small regression passes. A live
|
At n=1.5, J=0, initial physical tables and the first two numerical histories
|
||||||
improvement, unchanged validation, and sensible overhead are required. Virial
|
match exactly, including block records through the third attempt's before-state.
|
||||||
success means both measured definitions satisfy 1e-5 where pressure is defined;
|
The first reset then changes the effective initial defect/RHS from the control's
|
||||||
interior EOS/Bernoulli consistency and algebraic convergence remain separate.
|
1.50970280 to 1, and reduces linear iterations from 71 to 65. Both accept alpha=1/64
|
||||||
|
after four trials. Resulting F is 1.75410130e-4 guarded versus 1.75953185e-4 control.
|
||||||
|
Later trajectories differ; their discarded raw guesses cannot be inferred from
|
||||||
|
the effective initial-residual reports.
|
||||||
|
|
||||||
|
| Capped n=1.5 outcome | Control | Guard |
|
||||||
|
|---|---:|---:|
|
||||||
|
| Accepted Newton steps | 7 | 8 |
|
||||||
|
| Termination | Eighth linear solve fails | Newton iteration cap |
|
||||||
|
| Final F | 1.75134755e-4 | 1.74946086e-4 |
|
||||||
|
| Last accepted alpha | 1/2048 | 1/8192 |
|
||||||
|
| Total linear iterations | 672 | 561 |
|
||||||
|
| First seven attempts' linear iterations | 472 | 467 |
|
||||||
|
| Sum of linear solve times | 303.52 s | 242.92 s |
|
||||||
|
| Sum of Newton-attempt times | 487.15 s | 447.25 s |
|
||||||
|
| Process time, including diagnostics | 550.36 s | 508.16 s |
|
||||||
|
|
||||||
|
The guard passes every linear gate within this cap; the last true residual/RHS is
|
||||||
|
0.02995827. Most of the total iteration reduction comes from avoiding the last
|
||||||
|
200-iteration failure. The seventh guarded solve costs 94 iterations versus 80
|
||||||
|
in the control, so improvements are not uniform. These are different later
|
||||||
|
linear systems and single timings, not a same-matrix or reproducible speedup
|
||||||
|
measurement. The inactive n=1 control itself varied by approximately 5% in time.
|
||||||
|
|
||||||
|
Both n=1.5 endpoints remain unconverged and have similar unresolved local errors.
|
||||||
|
Guarded q18 P(h) energy/force virial errors are 2.24342463e-6 / 2.35159576e-6;
|
||||||
|
changes from control are +9.04e-9 / +2.02e-8. The q14/q18 difference is 1.84e-9.
|
||||||
|
Full P(rho) virials remain undefined from sampled DG density negativity. The
|
||||||
|
negative-density mass fraction changes only from 2.89327559e-5 to 2.89305795e-5;
|
||||||
|
no negative enthalpy is sampled. Peak/RMS EOS and Bernoulli errors improve slightly.
|
||||||
|
Mass error increases from 3.50011e-6 to 3.52971e-6. Center-of-mass displacement
|
||||||
|
worsens from 1.67437e-6 to 4.57477e-6 of the unit reference radius and remains an
|
||||||
|
explicit follow-up metric. Sampled signs and extrema are not pointwise bounds.
|
||||||
|
|
||||||
|
The standalone solver-and-virial checker passes n=1 and fails n=1.5, preserving
|
||||||
|
strict stopping and pressure-validity distinctions. P(h) virial success alone
|
||||||
|
does not validate the interior. Severe damping first occurs with a cold guess
|
||||||
|
on the second n=1.5 attempt, so adverse warm starts cannot be the entire cause.
|
||||||
|
|
||||||
|
## Regression checks and reproduction
|
||||||
|
|
||||||
|
All five unique focused tests pass on one MPI rank: two backend tests with
|
||||||
|
41 assertions and three Newton integration tests with 356243 assertions
|
||||||
|
(356284 total). Both backend tests also pass on two MPI ranks, with 41 assertions
|
||||||
|
on each rank. Coverage includes beneficial-guess retention, restart/reporting,
|
||||||
|
rank-0-only adverse guesses, finite coefficients whose operator action overflows,
|
||||||
|
collective fallback, and the existing Newton correction-reuse integration.
|
||||||
|
|
||||||
|
The exact filters are `[solver][linear][fgmres][warm-start]` and
|
||||||
|
`[solver][newton][warm-start],[solver][newton][fgmres]`, with Catch RNG seed 20260916.
|
||||||
|
Only the backend filter is used in the two-rank check. Test binary SHA-256:
|
||||||
|
`258f749ce85e14136b8f7a5fe28e3a49f8007c6bfe37fedd81e27119a8be1d23`.
|
||||||
|
|
||||||
|
Reproduce guarded live cases with `run_plateau_campaign.py` and
|
||||||
|
`plateau_krylov_cases.json`; compare the corresponding restart-160 cases in
|
||||||
|
`plateau_control_cases.json` at the control revision. Mesh SHA-256:
|
||||||
|
`ce11ae99e21e6c3bbfbee402acd2e191c1da0d8261d2227b4203f73f2f337a74`.
|
||||||
|
Guard executable SHA-256:
|
||||||
|
`a16dfd624e74e89a0b6f78d0cd3742e58274b09580f09b3583d3a37fa4004d46`.
|
||||||
|
|
||||||
|
Raw runs, exact commands, logs, copied binaries, hashes and full analysis are
|
||||||
|
retained outside git under the campaign's `controls/`, `guard/`, `guard_checks/`
|
||||||
|
and `guard_analysis.md`. Recorded CMake caches are identical. Dynamic libraries
|
||||||
|
are not frozen and inherited thread settings are not captured. Direct frozen
|
||||||
|
MFEM probes bypass this production safeguard and cannot validate its behavior.
|
||||||
|
|||||||
Reference in New Issue
Block a user