1. Band structure of silicon
In this tutorial, we will use plot the band structure.
This is a HTML version of the tutorial, you can download corresponding
- Jupyter notebook:
1-band.ipynb - Julia script:
1-band.jl
Preparation
Load the package
using Wannier: read_w90_band
using WannierPlotsPath 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])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.