Skip to main content

Validated against Quantum ESPRESSO

Real numbers from the regression suite. Reproducible.

0.07meV/atom
Si LDA Γ-only
vs Quantum ESPRESSO 7.x, Si.pz-vbc.UPF, ecut=12 Ry
0.15meV/atom
Si 4×4×4 shifted
vs Quantum ESPRESSO 7.x with density symmetrization, ecut=18 Ry
7.4×10⁻⁶Ry/bohr
Forces vs analytic
Hellmann-Feynman forces match finite-difference to 5 sig figs

Methodology

Each comparison uses the same pseudopotential file, the same cell parameters, and the same plane-wave cutoff on both KRONOS and Quantum ESPRESSO (QE) v7.x. Total energies are compared in Rydberg, with the per-atom delta reported in meV. The Δ-test target for production GPU/HPC DFT codes is < 2 meV/atom; KRONOS is comfortably inside that on Si LDA across multiple k-grids.

The Si Γ-only and 4×4×4 numbers below come from the project regression suite (test_validation.cpp::QEValidation.*). Forces are validated against finite differences of the total energy on the same configurations.

Quantum ESPRESSO reference values on this page were obtained by running QE v7.x (pw.x) on the matching input decks. The QE input files are derived from QE's distributed PW/examples/example01 (scf-gamma and scf-kauto) using the same Si.pz-vbc.UPF pseudopotential. Inputs are reproduced under benchmarks/ (work in progress); pull requests adding more systems are welcome.

Total energy vs QE

SystemMethodKRONOS (Ry)QE (Ry)|Δ| (meV/atom)
Si diamondLDA Γ-only, ecut=12 Ry-14.518750-14.5187600.07
Si diamondLDA 2×2×2 shifted, ecut=12 Ry
pre-density-symmetrization; current value with sym ~0.15
-15.791795-15.79449618.00
Si diamondLDA 4×4×4 shifted, ecut=18 Ry
with density symmetrization (was 4.2 meV/atom unsymmetrized)
-15.843887-15.8445000.15

Per-configuration error

Logarithmic scale. The dashed line at 2 meV/atom marks the Δ-test target for production DFT codes.

Energy components: Si diamond, Γ-only, ecut=12 Ry

Breaking down the total energy into Hartree, XC, kinetic-plus-local, and Ewald contributions exposes any single component that diverges — useful for ruling out a "fortunate cancellation."

ComponentKRONOS (Ry)QE (Ry)Δ (Ry)
One-electron (T + Vloc + VNL)5.794685.79468~0
Hartree1.637381.63736+0.00002
Exchange-correlation-5.05104-5.05104~0
Ewald (ion-ion)-16.89976-16.89976~0
TOTAL-14.51875-14.51876+0.00001

Force validation (Hellmann-Feynman vs finite difference)

Si diamond, atom displaced 0.01 fractional units, ecut=12 Ry. Analytic forces match the finite-difference gradient of the total energy to 5 significant figures.

ComponentAnalytic (Ry/bohr)FD (Ry/bohr)|Δ|
Ewald-0.036018-0.036018< 1×10⁻⁵
Local PP-0.008305-0.0083127×10⁻⁶
Total-0.044323-0.0443307.4×10⁻⁶

Multi-system regression suite

Every commit runs the full regression suite across these systems. The values below are the converged total energies — the same numbers the test asserts on every CI build.

SystemPseudopotentialMethodE (Ry)Notes
Si diamondSi.pz-vbc.UPFLDA, Γ ecut=12 Ry-14.5190.07 meV/atom vs QE
Si diamondSi.pz-vbc.UPFLDA, 4×4×4 ecut=18-15.8440.15 meV/atom vs QE (with density sym)
Al FCCAl.pz-vbc.UPFLDA, Γ ecut=16 Ry-4.037sp-metal, Gaussian smearing
Al FCCAl.pz-vbc.UPFLDA, 4×4×4 ecut=16-4.1858 IBZ k-points (spglib)
Cu FCCCu.pz-d-hgh.UPFLDA, Γ ecut=30 Ry-71.537d-metal, Z=11, 6 projectors
H₂O moleculeH/O pz UPFLDA, Γ ecut=12 Ry-30.56512 bohr box
MgO rocksaltMg/O pz UPFLDA, Γ ecut=40 RyIonic insulator, band gap verified
GrapheneC.pz-vbc.UPFLDA, 4×4×1 ecut=302D with vacuum padding
Fe BCCFe.pz-hgh.UPFLSDA, 4×4×4 ecut=40-36.293Spin-polarized, mag=2.66 μ_B

Reproduce these numbers

The regression suite that produces every number on this page lives in the repo: test/test_validation.cpp. Build KRONOS, run ctest -R QEValidation, and the matching QE input decks for side-by-side runs are at benchmarks/ (work in progress).

# Build
cmake -B build -S . && cmake --build build -j

# Run the QE-comparison subset
cd build && ctest -R QEValidation --output-on-failure

# Full validation suite (all systems)
ctest -j2 --output-on-failure

Adding a new comparison? Add a system folder under benchmarks/ with a matching pw.in and kronos.yaml, and a regression test under test/test_validation.cpp::QEValidation.*. PRs welcome.

Citations and references

KRONOS's reference comparison code is Quantum ESPRESSO (QE), a widely used open-source plane-wave DFT engine. If you use the numbers on this page in a publication, please cite both KRONOS (forthcoming, see /docs) and the QE primary references:

BibTeX for QE:

@article{Giannozzi2009,
  title = {QUANTUM ESPRESSO: a modular and open-source software project for
           quantum simulations of materials},
  author = {Giannozzi, P. and Baroni, S. and Bonini, N. and Calandra, M. and
            Car, R. and Cavazzoni, C. and Ceresoli, D. and Chiarotti, G. L. and
            Cococcioni, M. and Dabo, I. and others},
  journal = {Journal of Physics: Condensed Matter},
  volume = {21},
  number = {39},
  pages = {395502},
  year = {2009},
  publisher = {IOP Publishing},
  doi = {10.1088/0953-8984/21/39/395502}
}

@article{Giannozzi2017,
  title = {Advanced capabilities for materials modelling with Quantum ESPRESSO},
  author = {Giannozzi, P. and Andreussi, O. and Brumme, T. and others},
  journal = {Journal of Physics: Condensed Matter},
  volume = {29},
  number = {46},
  pages = {465901},
  year = {2017},
  publisher = {IOP Publishing},
  doi = {10.1088/1361-648X/aa8f79}
}

The pseudopotential Si.pz-vbc.UPF used throughout the Si comparisons ships with the QE distribution (PZ LDA, norm-conserving, Zval=4).