docs: finalize controlled solver campaign and transfer limits

This commit is contained in:
2026-09-16 16:04:49 -04:00
parent 5714a9b222
commit 95d9fbafe8

View File

@@ -157,8 +157,11 @@ value or an identification of homology, translation, or surface error.
The tested source is `1911a26`. The guard checks
the current true defect of a nonzero supplied correction and falls back to
zero only if that defect exceeds ||b|| or the operator action is nonfinite.
It preserves useful guesses and the existing damped-Newton history policy.
zero only if that defect norm is nonfinite or exceeds ||b||. The unchanged
input contract still rejects nonfinite coefficients in the supplied guess.
It retains finite supplied guesses whose current defect is no larger than that
of a zero guess and leaves the damped-Newton history policy in place. A smaller
initial defect does not guarantee faster subsequent Krylov convergence.
It adds no public options. A nonzero guess costs one extra measured operator
action; zero guesses do not.
@@ -190,8 +193,10 @@ mesh-independent solver performance. The timings are single observations.
P(h) energy/force virials remain near 2.24e-6/2.35e-6, changing only about
9.0e-9/2.0e-8. EOS and Bernoulli errors improve slightly and the negative-density
budget barely changes. P(rho) remains undefined and the validation gate correctly
fails. The center-of-mass offset increases from 1.67e-6 to 4.57e-6, so it would
budget barely changes. The conservative solver-plus-eight-check screen remains
unsatisfied: strict convergence is absent and P(rho) cannot be evaluated. P(h)
meets the primary virial milestone; this does not validate the local solution.
The center-of-mass offset increases from 1.67e-6 to 4.57e-6, so it would
be incorrect to claim that all physical metrics are unchanged. Both endpoints
remain unconverged. These limits motivate retaining the guard as a modest
improvement to the inner solver while pursuing the operator/weak-direction work.
@@ -207,15 +212,85 @@ not repeated benchmarks, and dynamically loaded dependencies are not frozen.
`experiments/check_plateau_physics.py RESULT_FOLDER` gates strict recorded
convergence and all eight defined, finite virial errors at 1e-5: energy/force,
P(h)/P(rho), and quadrature 14/18. It separately reports sign, conservation,
P(h)/P(rho), and quadrature 14/18. This conservative joint screen is stricter
than the primary physical milestone. In particular, the undefined P(rho) at
n=1.5 does not by itself prove physical virial failure; the defined P(h)
virials pass. The checker separately reports sign, conservation,
EOS, and Bernoulli measurements. It does not certify pointwise correctness or
assign arbitrary local-error tolerances. The checker distinguishes the
converged n=1 case, the n=1 algebraic failure despite good virials, undefined
P(rho) at n=1.5, and the failing n=3 seed virial.
Combined-example compilation, context tests, and its nonrotating physical
control are pending. This campaign uses focused tests, not a rerun of the
entire historical suite.
The combined source at `b3a752b` builds the sandbox, tests and diagnostic.
Three context/root tests pass (61 assertions): explicit seeding without a
central constraint, the generated angular-velocity/composable border, and
propagation of that angular velocity into physical rows. Together with the
five safeguard/Newton tests this is eight distinct focused C++ tests, with
two backend tests additionally repeated on two MPI ranks. It is not a rerun
of the entire historical suite. Later combined commits change documentation
and case manifests only; the final live campaign records `c88baa1`.
## Final combined physical checks
The combined executable has the same SHA-256 as the guarded executable. The
nonrotating n=1 case is the physical counterpart of the sandbox model, using
the diagnostic stopping controls. It converges in six full Newton steps,
with F=1.65157e-13 and 307 total linear iterations. Its worst virial error
among all eight checks is 3.73092e-7; the largest q14/q18 change is 1.29e-13.
At q18 the absolute mass error is 8.88e-15, J error is zero, and no negative
density or enthalpy is sampled.
Local consistency errors remain: peak/RMS EOS mismatch divided by sampled
density scale is 4.23549e-4/8.56537e-5, Bernoulli RMS is 1.13917e-4, and
hydrostatic gradient RMS is 5.48097e-3. These are measurements, not newly
invented acceptance tolerances. The literal sandbox executable was compiled;
its physical counterpart was run through the diagnostic for these measurements.
The J=0.1 transfer case doubles the previous target angular momentum and allows
12 Newton attempts, while retaining the numerical implementation and tolerances.
It is a physical transfer test, not a one-variable solver-policy comparison.
It does **not** converge: all 12 linear solves pass (507 total iterations), but
F plateaus at 6.25389278e-3 and the last accepted step is 4.76837e-7. The process
stops at its nonlinear iteration cap. Its 527.62 seconds include diagnostics;
summed Newton-attempt time is 462.33 seconds.
This endpoint also fails the primary virial milestone. At q18, the P(h) energy
and force virial errors are 4.75186e-4 and 8.18118e-4; q14 agrees to within
4.54e-14. Absolute mass and J errors are 6.42266e-4 and 2.13748e-4. Actual angular
velocity is 0.3431369602 in reference units, not a critical-rotation fraction.
P(rho) is undefined at negative-density samples; the negative mass fraction is
1.07284e-5. Peak/RMS scaled EOS mismatch is 1.02932e-2/5.75843e-4, and raw
Bernoulli RMS is 9.92365e-4. This is an unresolved failed model.
All 30 rejected trials fail pressure-force preparation before residual
measurement, unlike the merit-only n=1.5 plateau. The final sampled minimum
enthalpy is 1.82998e-10, with no sampled negative enthalpy; the minimum sampled
mapping determinant is 0.870965. Finite negative enthalpy is the leading
inference for rejected trials: pressure preparation explicitly rejects h<0,
and geometry preflight includes the pressure quadrature rules. However, the
recorded rejection also permits a nonpositive determinant/mapped-weight cause,
and the CSV omits the exact rejection code. An accepted state's sampled minima
do not certify its rejected trials. The present evidence supports locating an
admissibility obstruction, not declaring its exact sample or cause established.
Later supplied guesses are retained with defect/RHS near 0.03, so discarding
bad warm starts does not address this final obstruction.
## Retained Git history
The original checkout is left on `research/combined-20260916`, with the adopted
changes committed. The starting optimized source is committed on the baseline
branch; historical untracked caches and data are preserved. Separate hypothesis
branches remain available for inspection or reruns.
| Branch | Recorded revision / purpose |
| --- | --- |
| `research/baseline-20260916` | `80cc3d8`: preserved incoming source |
| `research/experiment-harness-20260916` | `9bd4af6`: common driver; `0470e3b`: checker; `899cb18`: screening clarification |
| `research/central-constraint-20260916` | `5167744`: hypothesis evidence; `2e19c2c`: combined validation notes |
| `research/krylov-window-20260916` | `937d2f2`: example restart 160; `1f9184b`: combined validation notes |
| `research/gravity-coupling-20260916` | tested `8c1f823`, outcome `db0ddd3`: rejected completion retained here |
| `research/krylov-20260916` | tested `1911a26`, outcome `7127383`: guarded warm guesses |
| `research/combined-20260916` | C++ build/context tests `b3a752b`, final live cases `c88baa1` |
## Next discriminating work
@@ -228,7 +303,12 @@ entire historical suite.
3. Separate interior, exterior, and interface gravity error. Exterior accuracy
matters through its effect on the interior; current aggregate block norms
cannot establish where the plateau lives.
4. If residual normalization is changed, first rescore identical physical trial
4. For the stronger-rotation pressure-preparation failures, record the specific
rejection reason and offending enthalpy/mapping sample. Geometry preflight
already includes pressure quadrature; negative h is the leading inference,
but the existing CSV cannot exclude a mapping/preflight discrepancy. Locate
the obstruction before selecting a positivity or surface treatment.
5. If residual normalization is changed, first rescore identical physical trial
states. This separates a changed merit from a changed Newton correction.
High-rotation continuation and a measured critical-rotation fraction remain
@@ -238,7 +318,7 @@ future validation work. These results do not establish the 50% or 99% targets.
The complete campaign is retained at
`/Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16`.
Each of `controls`, `baseline_n3`, `gravity`, and `guard` contains its copied
Each of `controls`, `baseline_n3`, `gravity`, `guard`, and `combined` contains its copied
case manifest, source/build provenance, executable, run records and diagnostics.
Use its retained `cases.json` with `run_plateau_campaign.py` at the recorded
source revision and a new output directory to repeat the observation. The
@@ -248,4 +328,6 @@ runner invocation and build requirements are in `plateau_diagnostic_README.md`.
- [Gravity-coupling comparison](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/coupling_comparison.md>)
- [Gravity-coupling interpretation](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/coupling_interpretation.md>)
- [Warm-start comparison](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/guard_analysis.md>)
- [Final combined physical validation](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/combined_validation.md>)
- [Combined context/root test manifest](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/combined_checks/manifest.json>)
- [Focused safeguard test manifest](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/guard_checks/manifest.json>)