Can two DFT cells holding different elements be compared by subtracting their energies?
No. Each element adds its own huge constant, giving gaps like 629,552 meV/atom; comparing mixing energies against each element's own reference fixes it.
In the log: The DFT comparison was subtracting different atoms, and is withdrawn
recordedDate not stated in the log; it was written between the commit of 2026-09-13 08:16 and the first commit that contains it, 2026-09-16 02:04rung 4 · DFT0 predictions · 1 result paragraphEXPERIMENTS.md lines 4190–4227
What E77 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E77.svg).
Results
EXPERIMENTS.md · line 4190
E77 — The DFT comparison was subtracting different atoms, and is withdrawn
The three reference structures finished. The comparison they were run for does not work,
and the part of E75 that describes it as valid is withdrawn. The prediction it carries -
that the two models agree within 30 meV/atom - is untested, not wrong; the instrument was.
composition
MACE gap
DFT gap
Mo0.62 Ta0.38
+212 meV/atom
+629,552 meV/atom
Ta0.39 Mo0.34 W0.18 Nb0.08
-145 meV/atom
-356,349 meV/atom
Six hundred thousand meV/atom is not a disagreement about chemistry.
A DFT total energy counts each atom's pseudopotential self-energy, which is hundreds of
eV per atom and different for every element. It cancels when two cells hold the same atoms
and only their arrangement differs - which is what the earlier occupancy work compared, and
why it worked. It does not cancel here: the reference is 4 Mo, 4 Nb, 4 Ta, 4 W and the
candidate is 10 Mo and 6 Ta. Subtracting them differences the pseudopotentials.
This is the references convention of the three-convention trap, on a path where it was
not being looked for. The rung was built to match lattice, occupancies and relaxation, and
it matches all three; it then compared two cells that do not contain the same elements. The
guard written for exactly this failure lives in OffLattice.driving_force and never sees
the DFT path.
The repair is the mixing energy, which is what every other rung already uses:
dE_mix(alloy) = E(alloy) - sum_i x_i E_i
with each model supplying its own elemental references, computed the same way - the same
16-atom cell filled with one element, the same lattice constant, the same cutoffs, the same
k-grid. The pseudopotential zero-points then cancel inside the DFT number, MACE's own
elemental energies cancel inside the MACE number, and the two are finally comparable. That
is also the shared-lattice reference convention the cluster expansion uses, so the answer
lands on the same footing as everything else in the record.
Cost of the repair: four elemental runs - Mo, Nb, Ta, W - which is why it was not free
to skip them. The alloy runs took 16 to 23 SCF iterations at six MPI ranks.
The full record
EXPERIMENTS.md · lines 4190–4227
E77 — The DFT comparison was subtracting different atoms, and is withdrawn
The three reference structures finished. The comparison they were run for does not work,
and the part of E75 that describes it as valid is withdrawn. The prediction it carries -
that the two models agree within 30 meV/atom - is untested, not wrong; the instrument was.
composition
MACE gap
DFT gap
Mo0.62 Ta0.38
+212 meV/atom
+629,552 meV/atom
Ta0.39 Mo0.34 W0.18 Nb0.08
-145 meV/atom
-356,349 meV/atom
Six hundred thousand meV/atom is not a disagreement about chemistry.
A DFT total energy counts each atom's pseudopotential self-energy, which is hundreds of
eV per atom and different for every element. It cancels when two cells hold the same atoms
and only their arrangement differs - which is what the earlier occupancy work compared, and
why it worked. It does not cancel here: the reference is 4 Mo, 4 Nb, 4 Ta, 4 W and the
candidate is 10 Mo and 6 Ta. Subtracting them differences the pseudopotentials.
This is the references convention of the three-convention trap, on a path where it was
not being looked for. The rung was built to match lattice, occupancies and relaxation, and
it matches all three; it then compared two cells that do not contain the same elements. The
guard written for exactly this failure lives in OffLattice.driving_force and never sees
the DFT path.
The repair is the mixing energy, which is what every other rung already uses:
dE_mix(alloy) = E(alloy) - sum_i x_i E_i
with each model supplying its own elemental references, computed the same way - the same
16-atom cell filled with one element, the same lattice constant, the same cutoffs, the same
k-grid. The pseudopotential zero-points then cancel inside the DFT number, MACE's own
elemental energies cancel inside the MACE number, and the two are finally comparable. That
is also the shared-lattice reference convention the cluster expansion uses, so the answer
lands on the same footing as everything else in the record.
Cost of the repair: four elemental runs - Mo, Nb, Ta, W - which is why it was not free
to skip them. The alloy runs took 16 to 23 SCF iterations at six MPI ranks.
Related entries
E75 — DFT rung: prediction recorded before the first result