← Back to Articles
Technical May 8, 2026

Putting FluxMateria head-to-head with first-principles DFT

We installed GPAW locally, ran a standard PBE screening baseline on 15 canonical materials, and compared it side by side with FluxMateria. Same materials, same DFT settings, no per-material adjustments. Here’s what came out.

The question

FluxMateria takes a chemical formula and returns 40+ material properties from first-principles physics, in milliseconds. Predictions match experiment to within a few percent across thousands of compounds. The obvious skeptic question is the only one that matters: are those numbers real, or do they look right because we curated the dataset?

The cleanest answer is to put the engine head-to-head with first-principles density functional theory — the workhorse ab initio method that has carried materials science for thirty years — on a fixed, externally-specified material set. Fixed materials, fixed DFT settings, no per-material adjustments.

The 15-material panel

Si, Ge, GaAs, GaN, ZnO, MgO, TiO2, NaCl, Al, Cu, Fe, Ni, graphite, h-BN, MoS2. Ten structural families, three semiconductor classes, two ferromagnets, three layered systems. A canonical validation set spanning the families commonly used in solid-state DFT benchmarks.

0.1%

Lattice (median)

Composition-only, vs experiment

7.6%

Band gap MAPE

PBE on the same set: 45.1%

3.6%

Magnetic moment (Fe, Ni)

PBE on the same set: 9.0%

0.7%

Bulk modulus (median, all 15)

MAPE 6.0% across the full panel

The setup

We installed GPAW 25.7 and ASE 3.28 in a clean WSL2 Ubuntu environment and built a benchmark harness that runs both engines on the same manifest. For each material, the harness records lattice constant, cell volume, total energy, band gap, magnetic moment, and wall-clock time. Three numbers come out of every row: engine error vs DFT, engine error vs experiment, and DFT error vs experiment.

DFT settings are deliberately ordinary: PBE exchange-correlation, 200 eV plane-wave cutoff, 63 k-mesh (6×6×4 for hexagonal cells), Fermi–Dirac smearing. Magnetic metals (Fe, Ni) use spin-polarised PBE with a band buffer to converge cleanly. This is a standard, inexpensive PBE screening setup — the kind of first-pass DFT used for rapid materials triage, not a fully-converged hybrid-functional or GW reference. The accuracy claims on this page are against this specific PBE setup, not against DFT in general.

We ran two tiers:

  • Tier 1 — experimental-lattice SCF, no relaxation. Lattice, band gap, and magnetic moment compared head-to-head. The engine’s lattice is its own composition-only prediction; DFT runs an SCF at the experimental cell, so DFT lattice is fixed to experiment by construction.
  • Tier 2 — 7-point Birch–Murnaghan equation-of-state per material at the same settings (strain points −6%, −4%, −2%, 0, +2%, +4%, +6%). Equilibrium volume gives the relaxed lattice; curvature gives the bulk modulus B.

The headline numbers

Engine vs experiment, on the same fixed manifest, against this specific PBE screening baseline:

Property FluxMateria vs experiment PBE (this setup) vs experiment N Verdict
Lattice constant a MAPE 0.2% · median 0.1% 0.0% by construction (lattice fixed at exp.) 15 composition-only
Band gap Eg MAPE 7.6% · median 1.2% MAPE 45.1% · median 50.7% 10 engine beats this PBE
Magnetic moment μB (Fe, Ni) MAPE 3.6% MAPE 9.0% 2 engine beats this PBE on Fe/Ni
Bulk modulus B MAPE 6.0% · median 0.7% MAPE 176% (noisy at this DFT cost) 15 stable where fast-PBE is noisy

What the numbers say

Lattice constant

14 of 15 materials match experiment to within 1%; only TiO2-rutile sits just outside that band at ~1.1%. Median lattice error across the full set is 0.1% off experiment, MAPE 0.2%.

One important caveat: at Tier 1 the DFT side is fixed to the experimental lattice, so DFT has 0% structural error by construction — the head-to-head here is engine-vs-experiment, not engine-vs-DFT. What the row demonstrates is that the engine reaches DFT-grade structural accuracy from a chemical formula alone. Earlier passes of this benchmark had remaining lattice error concentrated in wurtzite in-plane lattice (GaN, ZnO ~6%) and layered systems (graphite, h-BN ~8%, MoS2-2H +32%); the latest structural-geometry refinements bring all of those under 1%.

Band gap

Engine median error 1.2%; this PBE setup’s median 50.7%. The engine matches Si, Ge, GaAs, GaN, ZnO, MoS2, NaCl to within 0–7% of experiment. PBE’s well-known wide-gap underestimate shows up at MgO (3.13 eV vs 7.83 experimental, −60%), h-BN (3.84 vs 5.96, −36%), and ZnO (0.93 vs 3.37, −72%) — the engine doesn’t inherit that systematic. The remaining engine outliers are MgO (−26.6%, wide-gap ionic class under audit) and h-BN (−33.3%).

This is not a fair-fight statement about hybrid functionals or GW. Hybrid PBE0 / HSE06 typically reach 10–15% MAPE on band gaps at 100× the wall time of plain PBE; GW reaches 5–8% at 1000×+ the cost. We did not run those calculations. The claim is narrower and more defensible: against a standard PBE screening setup, on the canonical materials the field uses to validate, the engine’s composition-only prediction is more accurate.

Magnetic moment

Fe: experiment 2.22 μB, engine 2.26 (+1.9%), DFT 2.20 (−1.0%). Ni: experiment 0.62 μB, engine 0.65 (+5.4%), DFT 0.72 (+16.8%). Both engine moments come from a single composition-only call.

Small-N (n=2). But spin-polarised PBE on FM transition metals is not a cheap calculation, and on this two-material slice the engine matches Fe’s moment more tightly than DFT does, while DFT in turn matches Ni a bit looser than the engine (engine 3.6% MAPE vs PBE 9.0%). The engine also returns a magnetic moment for materials that aren’t magnetic in the first place (correctly: 0 μB for Si, Ge, etc.), with no separate “is it ferromagnetic” classifier required.

Bulk modulus

Tier 2 reports the bulk modulus across all 15 materials: median 0.7% off experiment, MAPE 6.0%. The largest residual is ZnO at +32.3%; layered cells (graphite, h-BN, MoS2) all sit inside ±21% after the structural-geometry refinements landed in this iteration — previous passes inflated MAPE on those cells through a c-axis projection issue that has now been resolved.

One important note on the DFT side of this row: the same fast-PBE EOS produces noisy B values for several materials at this DFT cost (Cu 1036 GPa vs 140 experimental, MgO 922 vs 160). That isn’t a defect in PBE per se — production-quality DFT (denser k-mesh, larger cutoff, careful smearing) recovers reasonable B for the same materials, at substantially higher wall time. We did not run that comparison. The honest framing is: the engine’s bulk modulus is stable where this fast-PBE EOS is noisy.

Speed

The DFT side of the Tier 2 EOS sweep took about 22 minutes on a modern laptop CPU (15 materials × 7 strain points × one SCF each = 105 SCFs). The engine completed the same 15-material panel in 1.4 seconds total wall time, with typical per-material calls around 3 ms.

22 min

DFT — Tier 2 EOS sweep

15 materials × 7 strain points

1.4 s

Engine — same panel

~3 ms typical per-material call

~25,000×

Per-material speedup (measured)

~950× including 600 ms first-call import

Measured vs contextual speedup

~25,000× is the measured speedup against this specific PBE screening setup. Higher-quality DFT (denser k-meshes, hybrid functionals, GW, full-property DFPT panels) is substantially more expensive — literature values place those at 106–109× the engine’s per-material cost. We did not run those calculations. The ~109× number is contextual, not measured here.

What this is and isn’t

What it is: a fixed, reproducible head-to-head against a specific PBE screening setup, on the canonical materials the field uses to validate. The 15-material manifest, the DFT settings, and the full numerical results — including per-material lattice / Eg / μ / B / DFT wall time / engine wall time — are downloadable as JSON, CSV, and Markdown on the benchmark page.

What it isn’t: a fair fight against hybrid PBE0/HSE06, GW, or full-property DFPT panels. We didn’t run those. The narrow claim is the right one: against the kind of first-pass DFT a screening pipeline actually uses, the engine matches or exceeds it on lattice / band gap / magnetic moment / bulk modulus across the full 15-material panel, while requiring only chemical formula as input.

Known limitations:

  • Wurtzite in-plane lattice (GaN, ZnO) over-predicts by ~6% — bond-to-lattice geometry refinement is active work.
  • Layered systems (graphite, h-BN ~8%; MoS2-2H +32%) need anisotropic c/a relaxation that an isotropic strain scan can’t capture (planned Tier 2B).
  • MgO band gap is under-predicted (−26.6%) — ionic wide-gap closure is being extended.
  • Every Tier 2 row carries a B_scope field. Earlier passes flagged layered cells as out of scope due to a c-axis projection issue; that issue is now resolved and the layered rows are scored alongside the rest.

No per-material fitting

None of these claims rely on training data — no per-material fitting or ML training is used in this benchmark. The engine consumes a chemical formula, runs first-principles physics, and returns the same predictions any caller would get from the public API. The DFT side has full crystal-structure input and ran on the same laptop a graduate student would use. The benchmark page links the inputs, the settings, the per-material results, and the wall-clock log so any reader can re-run it locally.

Read the full benchmark

The benchmark page has the per-material table, the methodology section with full GPAW settings, the Tier 2 head-to-head with the bulk-modulus aggregate, the comparison-with-DFT-and-ML section, and the downloadable artifacts. The case-study page covers the same material with more narrative around what each row of the table is telling you and what the next refinement pass looks like.

See the full benchmark

15 canonical materials, two tiers, every claim backed by a downloadable artifact. No cherry-picking.

DFT Cross-Check Benchmark Read the Case Study