Record controlled numerical outcomes and remaining operator questions
This commit is contained in:
251
experiments/NUMERICAL_CAMPAIGN_2026-09-16.md
Normal file
251
experiments/NUMERICAL_CAMPAIGN_2026-09-16.md
Normal file
@@ -0,0 +1,251 @@
|
||||
# Targeted numerical campaign — September 16, 2026
|
||||
|
||||
This campaign tests separate explanations for the Newton plateau while keeping
|
||||
the public model API unchanged. The original optimized source is preserved in
|
||||
`research/baseline-20260916` at `80cc3d8`; `main` is unchanged. Hypothesis branches
|
||||
and complete numerical artifacts are retained, including unsuccessful changes.
|
||||
|
||||
## Decisions
|
||||
|
||||
| Hypothesis | Current decision | Evidence |
|
||||
| --- | --- | --- |
|
||||
| The extra central constraint distorts n=1's local equilibrium | Retain the example correction | Removing it reduces peak EOS error about 22-fold while preserving virial balance |
|
||||
| Restart 40 loses useful Krylov information | Retain restart 160 in the example | The matched n=1 rotating model reaches strict convergence; restart 40 fails its late linear gate |
|
||||
| One-way material-to-gravity completion is enough | Do not promote | Both windows still fail at n=3; correction grows and admissibility worsens |
|
||||
| Rejecting a harmful reused initial guess helps | Retain as limited linear-solver robustness | All eight n=1.5 linear gates pass; the nonlinear plateau remains |
|
||||
|
||||
Normalization, the nonlinear stopping tolerances, and the default production
|
||||
preconditioner have not been changed. The general FGMRES default remains intact;
|
||||
the example selects its existing restart option. No new physics-facing options
|
||||
or automatic n-dependent central constraint are introduced.
|
||||
|
||||
## Physical model and comparable controls
|
||||
|
||||
All runs use the same 1216-element `sandbox.smesh` and the release build's
|
||||
unchanged FEM spaces. Mesh SHA-256 is
|
||||
`ce11ae99e21e6c3bbfbee402acd2e191c1da0d8261d2227b4203f73f2f337a74`.
|
||||
The diagnostic chooses a Lane–Emden reference with M=R=G=1 and derives K and
|
||||
the seed density for each index. Its n=1 model has K=2/pi and seed density pi/4.
|
||||
At n=1 and n=1.5 the new controls omit the central constraint; n=3 retains it.
|
||||
That is an experiment choice, not an automatically imposed library policy.
|
||||
|
||||
Controls use nonlinear relative tolerance 1e-8, zero absolute tolerance,
|
||||
linear relative tolerance 0.03, and a 200-iteration linear cap. A small virial
|
||||
error and successful algebraic stopping are recorded separately. J=0.05 or
|
||||
the resulting angular velocity is not a measured fraction of critical rotation.
|
||||
|
||||
The common diagnostic revision is `9bd4af6`. The later shared-tools revision
|
||||
`0470e3b` adds a result checker, source-relative input hashing, and hashes for
|
||||
saved output states/metadata. It does not alter the stellar solve.
|
||||
|
||||
## Removing the n=1 central constraint
|
||||
|
||||
The matched J=0.05, restart-40 controls isolate this model change. The initial
|
||||
physical measurements agree exactly, and their first five accepted step
|
||||
lengths and linear iteration counts are identical. Both then fail the sixth
|
||||
linear gate at essentially the same true relative defect, about 0.505.
|
||||
|
||||
| Final measurement, quadrature 18 | Central constraint | No central constraint |
|
||||
| --- | ---: | ---: |
|
||||
| Peak absolute EOS density mismatch | 7.30451e-3 | 3.32568e-4 |
|
||||
| Peak EOS mismatch / sampled density scale | 9.33951e-3 | 4.30594e-4 |
|
||||
| Bernoulli sampled range | 1.45751e-2 | 1.30398e-3 |
|
||||
| Residual with artificial border source removed | 4.54227e-6 | 6.03609e-9 |
|
||||
| P(h) energy virial error | 3.01617e-7 | 3.06913e-7 |
|
||||
|
||||
Mass, J, and angular velocity are essentially unchanged. The formerly fixed
|
||||
central enthalpy coefficient falls from 1 to 0.983383508. The peak and range
|
||||
improvements are localized: volume RMS errors barely change. Quadrature 14
|
||||
independently shows the same trend. These sampled extrema are not certified
|
||||
pointwise bounds.
|
||||
|
||||
The example now supplies density through the existing Lane–Emden seed policy
|
||||
instead of constraining the final n=1 model. The added context regression
|
||||
checks that explicit seeding works without a central constraint. For n=3 the
|
||||
constraint remains optional; omission is not promised to overcome homology.
|
||||
|
||||
## Larger Krylov window: live n=1 success
|
||||
|
||||
At J=0.05, changing only restart 40 to 160 gives:
|
||||
|
||||
| Quantity | Restart 40 | Restart 160 |
|
||||
| --- | ---: | ---: |
|
||||
| Accepted Newton steps | 5, all full | 7, all full |
|
||||
| Final normalized residual | 6.03609e-9 | 3.38036e-11 |
|
||||
| Strict configured convergence | No | Yes |
|
||||
| Total linear iterations, including failed attempts | 370 | 292 |
|
||||
| End-to-end seconds, including diagnostics | 290.80 | 271.95 |
|
||||
|
||||
The first four accepted steps coincide exactly. The fifth solve first crosses
|
||||
the smaller restart boundary. The final strict threshold is about 2.15e-10.
|
||||
These are single timing observations, not a general speedup benchmark. A larger
|
||||
Krylov window also requires more storage.
|
||||
|
||||
All four final virial definitions, at both quadrature orders, are below
|
||||
3.735e-7. The P(h) energy result at q18 is 3.07200e-7. Mass and J errors are
|
||||
1.75e-13 and 1.54e-14. No sampled density or enthalpy is negative. Local EOS and
|
||||
Bernoulli errors remain essentially those of the improved unphased model.
|
||||
|
||||
The center-of-mass offset falls from 7.66e-6 to 2.69e-8 during the final
|
||||
corrections, after virial and local EOS metrics have mostly stabilized. This
|
||||
motivates examining weak position-related directions; it does not identify a
|
||||
specific null mode or establish a need for an additional gauge.
|
||||
|
||||
## Higher index: the larger window is not sufficient
|
||||
|
||||
For n=1.5, J=0, no central constraint, restart 160, seven linear solves meet
|
||||
their true-residual tolerance. Nonetheless, Newton step lengths shrink to
|
||||
1/2048 and F remains 1.75135e-4. The eighth linear solve fails at relative
|
||||
defect 0.07910. The first severe damping occurs with a zero initial guess,
|
||||
before a reused correction can explain the difficulty. Later reused guesses
|
||||
start with defects about 1.5–2.0 times the RHS norm.
|
||||
|
||||
Recorded rejected trials fail the merit test; their geometry remains valid.
|
||||
Smaller reported starting-step caps include line-search history and must not
|
||||
be mistaken for geometric admissibility limits. Gravity-gradient and Poisson
|
||||
rows hold about 99.69% of the squared normalized endpoint residual. Those rows
|
||||
include both interior and exterior contributions, so this does not locate the
|
||||
physically important interior error.
|
||||
|
||||
P(h) energy/force virials pass at approximately 2.23e-6/2.33e-6, but Bernoulli
|
||||
and hydrostatic consistency worsen. P(rho) is undefined at some samples because
|
||||
of small negative DG density values; negative mass fraction is about 2.89e-5.
|
||||
The corresponding pressure sensitivity budget is about 3.76e-7 in virial units.
|
||||
This endpoint is not classified as a validated equilibrium.
|
||||
|
||||
## Rejected one-way gravity completion
|
||||
|
||||
The tested candidate `8c1f823` changes only the structure factorization to
|
||||
material-then-gravity triangular completion. It retains exactly the default
|
||||
material component, Chebyshev order 5 gravity mass inverse and three-cycle
|
||||
AMG potential inverse. It includes density and shape couplings and rebuilds
|
||||
the scalar border. Its baseline is `9bd4af6`.
|
||||
|
||||
Both runs reconstruct the identical n=3 constrained seed. Snapshot, layout,
|
||||
initial physical measurements, and frozen RHS block norms agree exactly.
|
||||
Both cold Krylov windows are measured; each policy's restart-160 correction
|
||||
is then tested without committing any nonlinear step.
|
||||
|
||||
| Frozen result | Baseline | Candidate |
|
||||
| --- | ---: | ---: |
|
||||
| Restart-40 true residual / RHS, 200 iterations | 0.0563080 | 0.0715826 |
|
||||
| Restart-160 true residual / RHS, 200 iterations | 0.0402590 | 0.0381781 |
|
||||
| Restart-160 solve seconds | 98.92 | 117.71 |
|
||||
| Selected normalized correction norm | 0.75764 | 1.54083 |
|
||||
| Sampled thermodynamic step bound | 0.15244 | 0.09135 |
|
||||
|
||||
Neither clears the 0.03 linear gate. The candidate's alpha=0.1 trial is
|
||||
inadmissible; the baseline's is admissible and lowers F by 3.40%. The
|
||||
candidate's best sampled admissible trial, alpha=0.01, lowers F by about 1.01%.
|
||||
The unchanged seed virial is not evidence about the uncommitted trial states.
|
||||
|
||||
Completion contracts the central-border column's Poisson defect about 4.8-fold
|
||||
but worsens the Bernoulli column's Poisson defect. Those columns have zero
|
||||
shape component, so this mixed response already occurs for density-source
|
||||
completion. The experiment does not rule out better gravity subsolves or
|
||||
two-way material/gravity feedback.
|
||||
|
||||
There is also direct evidence of a weak normalized direction. Baseline
|
||||
restart-40 and restart-160 corrections have cosine -0.985 despite the same
|
||||
state and Jacobian. If e_i=Jp_i+F, then
|
||||
J(p_2-p_1)=e_2-e_1, giving a response bound
|
||||
||J(p_2-p_1)||/||p_2-p_1|| <= 2.77e-4. The candidate adds still more amplitude
|
||||
in essentially the restart-160 direction. This is not a measured singular
|
||||
value or an identification of homology, translation, or surface error.
|
||||
|
||||
## Warm-start safeguard
|
||||
|
||||
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.
|
||||
It adds no public options. A nonzero guess costs one extra measured operator
|
||||
action; zero guesses do not.
|
||||
|
||||
Five focused tests pass on one rank (356284 assertions). The two pure-backend
|
||||
tests also pass on two MPI ranks (41 assertions on each rank), including a bad
|
||||
guess or overflow confined to one rank. These results establish behavior of
|
||||
the safeguard. The matched n=1 run then reproduces the control byte-for-byte:
|
||||
accepted state, physical CSVs, trial records and all non-timing Newton columns.
|
||||
Its eight virial checks pass, and it reaches the identical strict convergence.
|
||||
|
||||
At the first shared n=1.5 damped state, the guard changes the effective initial
|
||||
defect/RHS from 1.5097 to 1 and reduces linear iterations from 71 to 65. The
|
||||
same alpha=1/64 is accepted, with a slightly smaller nonlinear residual. Later
|
||||
comparisons follow different trajectories and are not same-matrix comparisons.
|
||||
|
||||
| n=1.5 capped-run result | Control | Guard |
|
||||
| --- | ---: | ---: |
|
||||
| Successful linear solves | 7, then an eighth failure | All 8 |
|
||||
| Total linear iterations | 672 | 561 |
|
||||
| Iterations in first seven attempts | 472 | 467 |
|
||||
| Final normalized residual | 1.75135e-4 | 1.74946e-4 |
|
||||
| Final accepted step | 1/2048 | 1/8192 |
|
||||
| End-to-end seconds | 550.36 | 508.16 |
|
||||
|
||||
Most of the total iteration reduction comes from avoiding the final 200-step
|
||||
failure. The guard reaches the nonlinear iteration cap instead. Its residual
|
||||
is only 0.108% lower, so this is not a nonlinear-plateau cure or a claim of
|
||||
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
|
||||
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.
|
||||
|
||||
## Validation and reproducibility
|
||||
|
||||
`experiments/run_plateau_campaign.py` builds a committed source revision and
|
||||
retains exact case commands, build settings, mesh and binary hashes, an
|
||||
immutable executable, snapshots, CSV diagnostics, and observed exit codes.
|
||||
Cases run serially. A campaign exit of zero means observations completed;
|
||||
a model exit of three remains recorded as nonconvergence. Timing samples are
|
||||
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,
|
||||
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.
|
||||
|
||||
## Next discriminating work
|
||||
|
||||
1. At a frozen stalled state, split a correction into shape-only and remaining
|
||||
field components. Measure full, pure-shape, pure-field and mixed Taylor
|
||||
remainders at common admissible step lengths. Fixed-shape gravity is affine
|
||||
in the fields, so its field-only remainder should be at roundoff.
|
||||
2. Characterize the weak correction differences with physical moments and
|
||||
controlled symmetry/shape tangents before adding a gauge or regularization.
|
||||
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
|
||||
states. This separates a changed merit from a changed Newton correction.
|
||||
|
||||
High-rotation continuation and a measured critical-rotation fraction remain
|
||||
future validation work. These results do not establish the 50% or 99% targets.
|
||||
|
||||
## Artifact index
|
||||
|
||||
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
|
||||
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
|
||||
runner invocation and build requirements are in `plateau_diagnostic_README.md`.
|
||||
|
||||
- [Detailed controls](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/control_analysis.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>)
|
||||
- [Focused safeguard test manifest](</Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d/diagnostics/numerical_campaign_2026-09-16/guard_checks/manifest.json>)
|
||||
Reference in New Issue
Block a user