Band structure calculation for Silicon
Before we can run bands
calculation, we need to perform SCF Calculation for Silicon. Next step is our band calculation (non-self consistent field) calculation. The bands
calculation is non self-consistent in the sense that it uses the ground state electron density, Hartree, exchange and correlation potentials determined in the previous step. In case of non self-consistent calculation, the pw.x
program determines the Kohn-Sham eigenfunction and eigenvalues without updating Kohn-Sham Hamiltonian at every iteration. We need to specify the k-points for which we want to calculate the eigenvalues. We can also specify nbnd
. Below is the input file for band calculation:
(We are using band.silicon.in file in this example)
&CONTROL
calculation = 'bands',
prefix = 'silicon',
outdir = './'
pseudo_dir = './'
verbosity = 'high'
/
&SYSTEM
ibrav = 2,
celldm(1) = 10.26,
nat = 2,
ntyp = 1,
ecutwfc = 30
nbnd = 8
/
&ELECTRONS
mixing_beta = 0.6
/
ATOMIC_SPECIES
Si 28.086 Si.pbe-n-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.25 0.25 0.25
K_POINTS {crystal_b}
5
0.0000 0.5000 0.0000 20 !L
0.0000 0.0000 0.0000 30 !G
-0.500 0.0000 -0.500 10 !X
-0.375 0.2500 -0.375 30 !U
0.0000 0.0000 0.0000 20 !G
To run the calculation, type in Terminal
mpirun -np 4 /usr/bin/pw.x < band.silicon.in > band.silicon.out
The bands are now calculated. We need some post processing in order to obtain the data in more usable manner. Input file for bands.x
: (bands_pp.in)
&BANDS
prefix = 'silicon'
outdir = './'
filband = 'si_bands.dat'
/
Then simply run,
bands.x < bands_pp.in > bands_pp.out
Now this will create a lot of files among which we need si_bands.dat.gnu
which we will use in gnuplot
to plot the bandstructure.
Tip
We can simply install gnuplot
by typing in Terminal the following command
sudo apt install gnuplot
Plotting using gnuplot
ΒΆ
gnuplot
has several features, but we can simply do the following to get the plot quickly. Type gnuplot
in Terminal and a new prompt will come up. We use the following commad to get the plot :
pl "si_bands.dat.gnu" w l lw 2