Quantum ESPRESSO band structures for MC3D: metallicity, band gap, and eigenvalues

Non-self-consistent (nscf) band-structure calculations for 19,405 MC3D structures: a summary row per material, the primitive cell it was computed on, and the eigenvalues along the high-symmetry k-point path.

Every structure has all three. There is no row without a structure file and none without a band table.

Same settings and the same family of MC3D structures as the k-index record 52713-55d86, which answers a different question — which mesh is dense enough. This one answers what the band structure says about the material.

Files

| File | Contents | | --- | --- | | nscf_band_summary.csv | 19,405 rows, one per structure | | CIF_files.tar.gz | 19,405 structures, CIF_files/<source_db_id>.cif | | bands.tar.gz | 19,405 eigenvalue tables, bands/<source_db_id>.csv | | example.py | Reads all three, and plots one band structure |

Everything keys on source_db_id, the MC3D identifier.

Start here

python example.py                 # the summary, then a plotted band structure
python example.py 100115          # one structure by source_db_id

Needs pandas; plotting needs matplotlib. It reads straight out of the tarballs, so nothing has to be unpacked first — though extracting bands.tar.gz is much faster if you are opening many structures, because a compressed archive is scanned from the start for every lookup.

Calculation settings

PBEsol, SSSP pseudopotentials, no spin polarisation. Each nscf calculation reads the charge density of its self-consistent parent and samples a high-symmetry path generated by SeeKpath.

The structures are primitive cells, and the CIF published for each material is the cell its bands were computed on.

nscf_band_summary.csv

| Column | dtype | Meaning | | --- | --- | --- | | source_db_id | str | MC3D identifier, the join key | | formula | str | Reduced chemical formula | | n_atoms | int | Atoms in the primitive cell | | structure_uuid | str | AiiDA StructureData UUID of the input structure | | nscf_pk | int | AiiDA PK of the nscf calculation | | nscf_uuid | str | AiiDA UUID of the nscf calculation | | fermi_energy_ev | float | Fermi energy, eV | | metallicity | str | metal or insulator | | band_gap_ev | float | Band gap in eV, empty for every metal |

9,854 rows are metal and 9,551 are insulator. band_gap_ev is populated for exactly the insulators and empty for exactly the metals; gaps run from 0.0016 to 13.75 eV.

bands/<source_db_id>.csv

One row per k-point along the path, in path order.

| Column | Meaning | | --- | --- | | kx, ky, kz | k-point in fractional coordinates of the reciprocal primitive cell | | label | High-symmetry label (GAMMA, M, K, …), empty between them | | band_0 … band_N | Eigenvalues in eV, one column per band |

The path runs GAMMA → M → K → GAMMA → …; read the segments off the non-empty label values in order. Bands are ordered by energy at each k-point, so band indices do not follow a band across a crossing.

⚠️ The k-points were reconstructed, and checked

The eigenvalue tables as calculated carried no k-point coordinates. The path came from SeeKpath through the standard workflow, so it was regenerated from each structure — but the archive did not use a single sampling density, so the density was determined per structure.

A reconstruction was accepted only when it matched the calculation's own record of the labelled points on all four of: number of k-points, the labels, their positions in the table, and their coordinates. 19,405 structures met that.

Two groups are excluded from this record entirely — structure, summary row and all: 104 whose reconstruction did not match, rather than publish coordinates that might not be theirs, and 80 whose eigenvalue tables were not in the working archive. What is published is one consistent set.

The eigenvalues themselves are copied unchanged from the calculation output.

⚠️ metallicity uses a zero threshold, and near-zero gaps are not meaningful

A row is insulator when the band structure has a gap at the Fermi level and metal when it does not. The threshold is a plain zero, not a tolerance: the smallest gap in the table is 0.0016 eV and nothing was rounded down.

That is a statement about the calculation, not about the material. A PBEsol gap of a few meV is far inside the error of the method, and a practitioner would treat such a system as metallic. If your work needs a physically meaningful split, choose your own threshold on band_gap_ev — the raw number is published so that you can:

| Threshold | Insulator rows below it | | --- | --- | | 0.01 eV | 10 | | 0.05 eV | 51 | | 0.1 eV | 110 | | 0.2 eV | 227 | | 0.5 eV | 599 |

No thresholded label is published, because a threshold frozen into an immutable record becomes a convention every consumer then has to discover and match. The gap is the fact; the cut is yours.

⚠️ These are DFT gaps and are systematically smaller than experimental ones.

One structure was calculated twice

S382971 (Cs4O16Se4) has two nscf calculations, PK 4667413 and PK 4728621, which agree: Fermi energy 1.3138 eV, metallic, no gap. The row carries PK 4728621.

Reproducing

Structures come from MC3D and are keyed by source_db_id, so the table rejoins to that database directly. The AiiDA identifiers in each row name the calculation that produced it, and are kept so two rows can be told apart even when they describe the same material.