Corpus & reference
The 834 Materials-Project elemental structures. The DFT reference is each structure's MP cell — i.e. the relaxation input cell, which is bit-identical to the MP-relaxed geometry and the same across all potentials. A reference therefore exists for every structure (unlike the elastic track, where a DFT elastic tensor exists for only ~37 %).
Protocol
Each MLIP relaxes the structure's cell shape + volume and ions to its own equilibrium
(mode="full", ASE FrechetCellFilter, fmax = 1e-2 eV/Å) — the same reference relaxation
the elastic track uses. The relaxed cell (3×3 lattice) and fractional positions are captured;
this page compares the relaxed cell against the input (DFT) cell. The hydro (volume-only)
relaxation mode is not used here.
Metrics
Let C_d, C_m be the DFT and MLIP cells (rows = lattice vectors), (a,b,c) the edge lengths,
V the volume.
| Metric | Definition |
|---|---|
median_edge_mape |
median over structures of mean(|Δa|/a, |Δb|/b, |Δc|/c)·100, with DFT and MLIP edge lengths sorted before pairing — basis-invariant to cell-vector reordering (default sort, ascending) |
median_vol_pct |
median of |100·(V_m − V_d)/V_d| |
frac_edge_1pct |
fraction of structures whose edge error ≤ 1 % (higher better) |
median_strain |
median of ‖E‖_F·100, the Frobenius norm of the Green–Lagrange strain E = ½(FᵀF − I), F = C_mᵀ(C_dᵀ)⁻¹ — rotation- and basis-invariant, and sensitive to shear/angle errors edge lengths miss |
Medians (not means) are reported because all four distributions have heavy tails — a handful of structures where a potential badly distorts the cell would otherwise dominate a mean.
Caveats
Sorted-edge matching makes the edge metric robust to vector reordering (it differs from a direct
per-vector comparison for ~3 % of structures, where the relaxation reorders/rotates cell vectors);
it does not, by construction, separate a vs b vs c for low-symmetry cells. Pure shear (correct
edge lengths, wrong angles) is invisible to the edge metric but is captured by median_strain.
Cell angles are not reported as a separate headline column.
See the leaderboard → · ← Methodology overview
Code
Relaxed-cell accuracy: full cell+ion relax, then read the equilibrium lattice (compared to the DFT input cell). Same relaxation the elastic track uses.
from ase.build import bulk
from ase.filters import FrechetCellFilter
from ase.optimize import FIRE
calc = ... # any ASE calculator for your MLIP (e.g. mace_mp(model="medium", device="cuda"))
atoms = bulk("Fe", "bcc", a=2.83, cubic=True); atoms.calc = calc
FIRE(FrechetCellFilter(atoms)).run(fmax=1e-2, steps=300)
a, b, c = atoms.cell.lengths() # relaxed edge lengths (Å)
volume = atoms.get_volume() # ų