For electronic-structure post-processing, pipeline order and matching prefix/outdir are everything.

The DOS / PDOS pipeline

scf (coarse k) ─→ nscf (dense k, occupations='tetrahedra') ─┬─→ dos.x      (total DOS)
                                                             └─→ projwfc.x  (PDOS + Löwdin)
  • nscf: densify the k-grid (say 8³ → 16³), raise nbnd to cover the conduction bands, set occupations='tetrahedra'. The tetrahedron method requires a Γ-centered automatic grid with zero shift. The optimized variant 'tetrahedra_opt' is fine for dos.x, but we found (measured, QE 7.5) that projwfc.x writes all-zero PDOS on top of it; if your pipeline includes PDOS, use the classic 'tetrahedra' (see the note in Example E7).
  • dos.x (&DOS): the total DOS. The fildos file has E (eV), DOS, and the integrated DOS. Check that the integral hits the valence electron count at the top of the valence bands.
  • projwfc.x (&PROJWFC): atom- and orbital-resolved DOS (PDOS) and Löwdin charges. Files appear as si.pdos_atm#1(Si)_wfc#2(p) and so on. The d occupation of Fe, spin-resolved breakdowns, and d-band centers all come from here.
Si total DOS and s/p-projected DOS
Measured silicon total DOS with s/p PDOS (QE 7.5, nscf 16×16×16, tetrahedra). The lower valence band is s-dominated and the upper is p-dominated, exactly as the textbook says. Procedure and numbers in Example E7.

The band-structure pipeline

scf ─→ calculation='bands' (K_POINTS tpiba_b path) ─→ bands.x ─→ plot

The k-path goes in the card of the 'bands' run:

K_POINTS (tpiba_b)
6
  0.500 0.500 0.500  30   ! L
  0.000 0.000 0.000  30   ! Gamma
  0.000 1.000 0.000  20   ! X
  0.500 1.000 0.000  20   ! W
  0.750 0.750 0.000  30   ! K
  0.000 0.000 0.000   0   ! Gamma  (last point gets 0 divisions)

Each line is a high-symmetry point plus the number of divisions to the next point. bands.x (&BANDS) reorders the eigenvalues into bands and writes filband (including a .gnu file).

tpiba_b vs crystal_b, when the path looks wrong

tpiba_b is Cartesian in units of 2π/a; crystal_b is fractional in the reciprocal basis. QE's primitive-vector convention for ibrav=2 can differ from the textbook fcc convention, so pasting literature fractional coordinates into crystal_b produces the wrong path. When in doubt, tpiba_b is the safe choice. For complex lattices, generate the path with SeeK-path.

Si band structure along L-Gamma-X-W-K-Gamma
Measured silicon band structure (QE 7.5, PBE, L–Γ–X–W–K–Γ). The valence band maximum sits at Γ and the conduction band minimum on the Γ–X line: an indirect-gap semiconductor. PBE systematically underestimates the gap (experiment: 1.12 eV). Numbers in Example E8.

Three ways to read a gap

  1. The highest occupied, lowest unoccupied level (ev) line in the scf or nscf output: simplest.
  2. Directly from the band data (VBM and CBM): also gives you the location of an indirect gap.
  3. The zero-DOS window in the DOS: beware, a coarse k-grid makes gaps look wider than they are.
Common mistakes

Shrinking DeltaE because the DOS looks jagged. The cause is almost always an insufficient nscf k-grid; densify it and use the tetrahedron method. Running dos.x straight off a coarse scf density works, but the resolution is poor. Respect the pipeline order.