2.5 KiB
Plateau endpoint milestone checker
Run the standalone standard-library script with one completed result folder:
python3 experiments/check_plateau_physics.py /absolute/path/to/plateau-result
It reads metadata.txt and final_physical.csv and prints standard JSON. Exit codes:
- 0:
solver_and_virial_milestone=pass: recorded strict solver convergence and all eight defined, finite virial errors at or below 1e-5. - 3: those milestone checks do not all pass, including an undefined pressure integral.
- 2: missing or malformed required endpoint data, including an incomplete quadrature table or missing convergence outcome.
The eight checks comprise energy and force virials with both P(h) and P(rho), each at quadrature orders 14 and 18. An undefined check is distinguished from a finite check exceeding the threshold. Pressure validity, density/enthalpy signs, negative-density budgets, mass/J errors, and local EOS/Bernoulli measurements are reported separately. Nonfinite numbers become JSON null with a retained finite flag and NaN/infinity classification.
This joint solver-and-eight-virial screen is deliberately stricter than the primary physical milestone of virial balance within 1e-5. The n=1.5 endpoints meet that milestone using P(h); an undefined P(rho) caused by small signed DG undershoot does not by itself demonstrate a physical virial failure. The JSON keeps those individual outcomes separate from its conservative aggregate result.
Passing this gate is not full physical validation. No new tolerance is assigned to mass/J or local errors. Sampled signs and extrema are not certified pointwise bounds. The script trusts the diagnostic's recorded convergence flag and physical measurements; it does not reconstruct a model, validate provenance, or independently recompute integrals. It does not inspect or modify production code.
Verification on the September 16 campaign:
| Completed case | Expected and observed exit | Distinction checked |
|---|---|---|
| n=1, J=0.05, no central constraint, restart 160 | 0 | Strict convergence and all virials pass |
| Same model, restart 40 | 3 | Virials pass, strict convergence fails |
| n=1.5, J=0, no central constraint, restart 160 | 3 | P(h) virials pass; P(rho) is undefined |
| n=3 initial seed | 3 | P(h) virials exceed the threshold |
Threshold equality, one virial just above threshold, and missing required data were also checked. Detailed verification JSON and reports remain with the raw campaign artifacts in the audit workspace.