Experiments · E24

Does the spread of an alloy's random-arrangement energies predict how much it orders?

Yes. It correlates at +0.877, against −0.21 for the old measure, and cuts the shortcut's error to 0.96 meV/atom.

In the log: The short-range-order correction was regressed on the wrong variable

recordedDate 2026-09-12, as written in the logunclassified0 predictions · 1 result paragraphEXPERIMENTS.md lines 1085–1145
exp E24 diagram
What E24 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E24.svg).

Results

EXPERIMENTS.md · line 1120

Result, calibrated on 40 compositions at 1500 K with 64 occupancy samples, tested on 15 compositions drawn fresh after the model was chosen:

The full record

EXPERIMENTS.md · lines 1085–1145

E24 — The short-range-order correction was regressed on the wrong variable

Date 2026-09-12 · Question The calibrated fast path's residual sat at 3-5 meV/atom depending on the draw. Is that Monte Carlo noise, too little calibration data, the wrong functional form, or the wrong variable? · Provenance forager/thermo.py, scripts/build_ce.py, …/{cal_study,sigma_model,fresh_holdout}.py

Ruling out the easy explanations. Repeating the reference integration on the same composition with four Monte Carlo seeds gives a spread of 0.34 meV/atom — the reference is precise, and the residual is not noise. Quadrupling the calibration set (20 → 80 compositions) moves the residual only 5.56 → 4.56. A quadratic fit is worse out of sample than a linear one at every size, so the functional form is not the limit either. What is left is the variable.

The variable. Ideal entropy counts how many species are present, not which. Over 20 calibration compositions the measured lowering spanned -4 to -17 meV/atom and ideal entropy tracked it well enough; over 40, spanning -4 to -32, the correlation collapses to -0.21. The earlier agreement was an artefact of a narrow range.

The high-temperature expansion supplies the right variable. Writing the canonical average as a cumulant expansion in beta,

<E>_beta = <E>_0 - beta * Var(E_total) + O(beta^2)

so per atom, for a cell of N sites, dE = -(N / k_B T) * sigma^2, where sigma is the scatter of the energy over random occupancies at that composition. The alloys that order most are the ones whose arrangements differ most in energy — and sigma is already computed by the fast path, so the better correction costs nothing.

With no fitted parameters at all it predicts -31.8 to -3.6 meV/atom against a measured -32.0 to -4.2, correlation +0.877 (against -0.213 for ideal entropy), bias +2.74 and scatter 3.27 meV/atom. The residual bias is the first-order truncation; a fitted slope and offset absorb it. The entropy ratio follows the same variable (+0.829 against -0.131).

Result, calibrated on 40 compositions at 1500 K with 64 occupancy samples, tested on 15 compositions drawn fresh after the model was chosen:

basis residual on dE holdout MAE max
ideal entropy 5.18 2.6 - 3.0 6.6
variance, fitted 2.22 0.96 3.02

RMSE 1.30 meV/atom, against a cluster expansion whose own cross-validation error is 5.67 and a potential 6.61 from DFT. 90 compositions/s at 64 samples, 179 at 32 (where the MAE is 1.48 — the samples buy statistics on sigma, which is now load-bearing).

Uncertainty. Predictions carry a sigma from a 50-member bootstrap ensemble of the cluster expansion, the calibration residuals, and the sampling error on the mean. It is unbiased (mean z +0.06) and conservative (sd z 0.48; 15/15 inside 2 sigma). Conservative because the energy and entropy corrections share a basis, so their errors partly cancel in the difference that forms F. Only 0.3-1.2 meV/atom of the ~2.7 total varies with composition — the ensemble part. That is the only part Bayesian optimisation can explore on, and it is presently swamped by the near-constant calibration floor. Cutting that floor is the single highest-value improvement to this surrogate.

Caveats. Calibrated at one temperature and one cell size. Sigma is estimated from a finite sample, so the correction does not transfer between sample counts — the code refuses rather than silently rescaling. The cumulant argument is a high-temperature expansion; at low enough temperature it must fail, and 1500 K has not been stress-tested against, say, 800 K.

Built with PRISMWebsite and visualizations made using Claude