# Band structure calculations

In the previous tutorial, we calculated the total energy of silicon and explored its Brillouin zone convergence. This tutorial illustrates calculations of the electronic band structure, specifically, the variation of the Kohn-Sham eigenvalues along a special kpoint path in the Brillouin zone.

First lets specify the bulk silicon energy calculation in Si.yaml, or reuse the file from the Brillouin-zone sampling:

```lattice:
system: cubic
modification: face-centered
a: 10.263

ions:
pseudopotentials:
- SG15/\$ID_ONCV_PBE.upf
coordinates:
- [Si, 0, 0, 0]
- [Si, 0.25, 0.25, 0.25]

electrons:
k-mesh:
offset: [0.5, 0.5, 0.5] #Monkhorst-Pack
size: [8, 8, 8]

grid:
ke-cutoff: 100 #Hartree

checkpoint_out: Si_out.h5
```

which can be run with

```(qimpy) \$ python -m qimpy.dft -i Si.yaml -o Si.out
```

Next, we list high-symmetry points in the Brillouin zone laying out a path along which we want the band structure, which can be put in kpoints.yaml:

```include: Si.yaml

electrons:

fillings:
n-bands: 10
n-bands-extra: 5

fixed-H: Si_out.h5 #fixed Hamiltonian so there's no more SCF

k-mesh: null #de-specify the k-mesh from Si.yaml

k-path:
dk: 0.05
points:
- [0, 0, 0, \$\Gamma\$]
- [0, 0.5, 0.5, X]
- [0.25, 0.75, 0.5, W]
- [0.5, 0.5, 0.5, L]
- [0, 0, 0, \$\Gamma\$]
- [0.375, 0.75, 0.375, K]

checkpoint-out: null #de-specify the checkpoint file creation from Si.yaml
```

Note that you can overwrite previously specified values when using include. The high symmetry points for many structures can be found easily online, such as this course website . Or you can use the more complete Bilbao database but you’ll need to know the point group of your crystal.

Then you can calculate the band structure along the k-point path with

```(qimpy) \$ python -m qimpy.dft -i kpoints.yaml -o kpoints.out
```

and if you investigate the electron fillings using `h5dump -g electrons/fillings kpoints.h5` then you can see that half of the bands are filled completely, while the other half are completely empty, in line with what is expected for a semiconductor.

And to generate the band structure plot, run

```(qimpy) \$ python -m qimpy.interfaces.bandstructure -c kpoints.h5 -o Si_bandstructure.png
```

which should produce

Notice that at the Gamma point, the lowest band is single while the next three higher bands are degenerate: these line up with the s and p valence orbitals on the Silicon atoms. These degeneracies change in different parts of the Brillouin zone: the XW segment has two pairs of degenerate bands, while the WL and Gamma-K segments have no degeneracies.