Corpus & reference
The 834 Materials-Project elemental structures. A DFT VRH reference (dft_k_vrh, dft_g_vrh)
exists for ~37 % of them (those for which MP has an elastic tensor); the percent-error metrics
are defined only on that subset.
Protocol (MP stress–strain)
- Reference relaxation — variable-cell (
ExpCellFilter) BFGS to the MLIP's own equilibrium cell,fmax = 1e-2 eV/Å. The residual reference stress (eq_stress) is captured and subtracted in the fit. - 24 deformations — 3 normal + 3 shear modes × 4 magnitudes: normal ±0.5 % and ±1 %, shear ±3 % and ±6 % (Green–Lagrange strains, the MP grid).
- Per-deformation stress — each strained cell is ion-relaxed at fixed cell, then its stress is read (tension-positive Cauchy, converted to GPa with ×160.21766208).
- Fit —
ElasticTensor.from_independent_strains(least squares,eq_stresssubtracted, Voigt-symmetrised) → K/G (Voigt/Reuss/VRH), Young's modulus, Poisson ratio, universal anisotropy, and Born mechanical stability.
The effective optimiser step cap is 10 000 (a documented max_iterations=300 is shadowed by the
engine default and never reached). mechanically_stable is the general positive-definite Born
criterion (all stiffness eigenvalues > 1e-8 GPa); there is no cubic-specific branch. It is a property
of the predicted tensor with no DFT comparand.
Metrics
| Metric | Definition |
|---|---|
median_abs_k_pct |
median of |100·(K_MLIP − K_DFT)/K_DFT| over structures with a DFT reference — median of absolute %, because near-zero DFT moduli give heavy tails (default sort, ascending) |
median_abs_g_pct |
same for the VRH shear modulus |
frac_mech_stable |
fraction of structures the MLIP predicts Born-stable (MLIP-only; no DFT comparand) |
Caveats
Use the With DFT ref facet for the comparison metrics and Predicted only to inspect structures without a comparand (where only mechanical stability is meaningful). On an errored re-run the database UPSERT can overwrite a previously-good row's physics columns with NULLs.
Provenance & verification (deep, code-cited) → /methodology/deep/elastic
See the leaderboard → · ← Methodology overview
Code
Full stiffness tensor + moduli for one crystal (elastic_compute.py in mlip-elemental-benchmark, MP stress–strain protocol):
from ase.build import bulk
from elastic_compute import compute_elastic
calc = ... # any ASE calculator for your MLIP (e.g. mace_mp(model="medium", device="cuda"))
res = compute_elastic(bulk("Cu", "fcc", a=3.6, cubic=True), calc)
res["elastic_tensor"] # 6×6 Cij (GPa)
res["k_vrh"], res["g_vrh"] # bulk / shear moduli (GPa)
res["mechanically_stable"] # Born-stability flag