diff --git a/experiments/NUMERICAL_CAMPAIGN_2026-09-16.md b/experiments/NUMERICAL_CAMPAIGN_2026-09-16.md index 33352fa..1ad957d 100644 --- a/experiments/NUMERICAL_CAMPAIGN_2026-09-16.md +++ b/experiments/NUMERICAL_CAMPAIGN_2026-09-16.md @@ -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]() - [Gravity-coupling interpretation]() - [Warm-start comparison]() +- [Final combined physical validation]() +- [Combined context/root test manifest]() - [Focused safeguard test manifest]()