1. Band structure of silicon

In this tutorial, we will use plot the band structure.

Tip

This is a HTML version of the tutorial, you can download corresponding

Preparation

Load the package

using Wannier: read_w90_band
using WannierPlots

Path of current tutorial

PWD = "3-band"
"3-band"

Read bands data files

recip_lattice = [
    -1.15701 1.15701 1.15701
    1.15701 -1.15701 1.15701
    1.15701 1.15701 -1.15701
]
kpi, E = read_w90_band("$PWD/si2", recip_lattice)
(StaticArraysCore.SVector{3, Float64}[[0.0, 0.0, 0.0], [0.005, 0.0, 0.005], [0.01, 0.0, 0.01], [0.015, 0.0, 0.015], [0.02, 0.0, 0.02], [0.025, 0.0, 0.025], [0.03, 0.0, 0.03], [0.035, 0.0, 0.035], [0.04, 0.0, 0.04], [0.045, 0.0, 0.045]  …  [0.5, 0.045, 0.545], [0.5, 0.04, 0.54], [0.5, 0.035, 0.535], [0.5, 0.03, 0.53], [0.5, 0.025, 0.525], [0.5, 0.02, 0.52], [0.5, 0.015, 0.515], [0.5, 0.01, 0.51], [0.5, 0.005, 0.505], [0.5, 0.0, 0.5]], [-5.7985155 -5.797983 … -1.6351163 -1.6353082; 6.2023253 6.1988037 … -1.6351163 -1.6353082; … ; 8.7034753 8.7060308 … 16.246232 16.247897; 9.7835521 9.7869533 … 16.246232 16.247897])
Tip

Here I pass a recip_lattice to the read_w90_band function, so that it will return a tuple of (KPathInterpolant, Matrix). You can also call the read_w90_band function without recip_lattice, however, this "raw" version will return rather verbose outputs, not very handy for usage. See the API read_w90_band for details.

Now let's have a look at the interpolated band

P = plot_band(kpi, E)

Finally, do the comparison here I generate a fake band structure by shifting it upwards by 0.1 eV

E_shift = E .+ 0.1
P = plot_band_diff(kpi, E, E_shift)

This page was generated using Literate.jl.