Header Ads Widget

Ab initio Calculations Using Wien2k Code

Last Posts

10/recent/ticker-posts

How to unfold the band structure of a supercell

First:

Why do we need to unfold the band structure of a suoercell?

Brief theory overview

Due to the many electrons in the unit cell, the electronic band structure of a supercell (SC) calculation is in general quite messy. However, supercell calculations are usually performed in order to allow for minor modification of the crystal structure, i.e. defects, distortions etc. In this cases it could be useful to investigate, up to what extent, the electronic structure of the non-defective is preserved. To this scope, unfolding the band structure of the SC to the one of the primitive cell (PC) becomes handy.
Reference: https://wiki.fysik.dtu.dk/gpaw/tutorials/unfold/unfold.html


Second:

To do this unfolding we need to install "fold2bloch" package as follows:

  1. Download "fold2Block.F90", "util.F", and "fetcharg.h" files.
  2. Create a directory called fold2Bloch
$ mkdir fold2Bloch
  1. Put the 3 downloaded files into newly created directory:
$ mv fold2Bloch.F90 util.F fetcharg.h ~/fold2Bloch
  1. Compile the program:
$ ifort -warn all -traceback -free util.F fold2Bloch.F90 -o fold2Bloch
Note: use the same compiler as for WIEN2k


 Reference: https://github.com/rubel75/fold2Bloch-Wien2k/wiki/Installation


Third:

Tutorial 1: Lattice of Hydrogen atoms


This tutorial should take roughly 20 min to complete. The time was based on 4 thread processing.
The following is the Hydrogen Supercell:
  1. Create a working directory called 6-atom2D
mkdir 6-atom2D
  1. Download 6-atom2D.struct and 6-atom2D.klist_band files from (https://github.com/rubel75/fold2Bloch/tree/master/Tutorials/Tutorial_1) into your working directory.
  2. Run Wien2k initialization:
init_lapw -b -numk 100
or -h for help
  1. Run regular SCF calculation:
run_lapw
  1. Generate the vector file (6-atom2D.vector) for the list of k-points in 6-atom2D.klist_bandPlease make sure that the SCRATCH variable points to your work directory. In the case of bash shell, just type
export SCRATCH=$PWD
x lapw1 -band
The list of k-points spans the path shown on the figure below.
  1. Once LAPW1 finishes, make sure that the vector file is created:
ls -l *.vector
The vector files are usually large. In this case the volume is 5,993 KB, but in real scenario they reach over 1 GB.
  1. Create a new sub-directory f2b:
mkdir f2b
and copy *.vector, *.struct and *.klist_band files to the f2b directory
cp 6-atom2D.vector 6-atom2D.struct 6-atom2D.klist_band f2b
cd f2b
Rename 6-atom2D.klist_band to 6.atom2D.klist:
mv 6-atom2D.klist_band 6-atom2D.klist
(Note: if the 6-atom2D.klist has been tampered with or is missing, fold2Bloch will still run and perform all the calculations, but it will advise you if it's missing or the number of K-points is inconsistent with the 6-atom2D.vector)
  1. Now we have all the files in place and can run fold2Bloch:
~/fold2Bloch/fold2Bloch -c 6-atom2D.vector 1:2:3
Here 1:2:3 refers to the supercell, which was constructed by repeating the primitive cell twice along Y-axis and three times along Z-axis. The option -c indicates complex calculation (default); for real calculation you do need to specify -r option.
After running fold2Bloch, you should see the following output:
 ***********************
 ** Fold2Bloch V 1.05 **
 ** Build May 29, 2014 **
 ***********************
Complex calculation indicated
FILE TO PROCESS: 6-atom2D.vector                                                       
/\/\/\ UNFOLDING VECTOR FILE /\/\/\                              
Processing K-Point: 0.000 0.950 0.000
Processing K-Point: 0.000 0.900 0.000
...
Processing K-Point: 0.000 0.000 0.133
Processing K-Point: 0.000 0.000 0.067

\/\/\/ UNFOLDING FINISHED SUCCESSFULLY \/\/\/
Number of K points processed:          34
Data was written to: 6-atom2D.f2b_01
Data format: KX, KY, KZ, Eigenvalue(Ry), Weight
6-atom2D.klist matches the vector file.
Notice the message "6-atom2D.klist matches the vector files", which indicates that .klist and .vector files have the same number of k-points.
  1. The newly created file 6-atom2D.f2b contains the list of unfolded k-points, corresponding eigenvalues (Ry) and weights (0...1):
 [stud2@feynman f2b]$ head 6-atom2D.f2b
 0.000000   0.454545   0.000000  -0.874353   0.000000
 0.000000   0.454545   0.333333  -0.874353   0.000000
 0.000000   0.454545  -0.333333  -0.874353   0.000000
 0.000000  -0.045455   0.000000  -0.874353   1.000000
 0.000000  -0.045455   0.333333  -0.874353   0.000000
 0.000000  -0.045455  -0.333333  -0.874353   0.000000
 0.000000   0.454545   0.000000  -0.424257   0.000000
 0.000000   0.454545   0.333333  -0.424257   0.000000
 0.000000   0.454545  -0.333333  -0.424257   0.000000
 0.000000  -0.045455   0.000000  -0.424257   0.000000 
The complete 6-atom2D.f2b can be found here: 6-atom2D.f2b
  1. We can plot the infolded band structure using the MATLAB script ubs_dots.m along the k-path. There are a few variables that should be adjusted to match the case:
KPATH = [0 1/2 0; ...
         0 0 0; ...
         0 0 1/2];
FOLDS = [1 2 3];
KLABEL = {'Y'; 'G'; 'Z'};
finpt = '6-atom2D.f2b';
Ef = 0.0460363511;
ERANGE = [Ef-1 Ef+0.4];
...
G = [ 0.333333  0.000000  0.000000;
     0.000000  0.166667  0.000000;
     0.000000  0.000000  0.111111];
The resultant band structure should resemble a cosine-like disperion relation inherent to s-states

Reference: https://github.com/rubel75/fold2Bloch-Wien2k/wiki/Tutorial-1:-Lattice-of-Hydrogen-atoms

https://github.com/rubel75/fold2Bloch-Wien2k

https://github.com/rubel75/fold2Bloch-Wien2k/wiki/Tutorial-2:-Bismuth-in-GaAs

https://arxiv.org/abs/1405.4218

https://github.com/rubel75/fold2Bloch-Wien2k/wiki/fold2Bloch-Guide

http://susi.theochem.tuwien.ac.at/events/ws2017/notes/tutorial-fold2Bloch.pdf

http://susi.theochem.tuwien.ac.at/reg_user/unsupported/

https://www.researchgate.net/post/The_difference_between_the_band_structure_of_a_unit_cell_and_a_supercell

http://blog.sciencenet.cn/blog-3352196-1096092.html

https://arxiv.org/pdf/1405.4218.pdf

https://arxiv.org/pdf/1602.02112.pdf

https://wiki.fysik.dtu.dk/gpaw/tutorials/unfold/unfold.html

http://www.openmx-square.org/openmx_man3.8/node154.html

https://www.ifm.liu.se/theomod/compphys/band-unfolding/

https://docs.abinit.org/tutorial/fold2bloch/

http://epubs.surrey.ac.uk/813175/1/PhD_Thesis_RossMaspero.pdf

Post a Comment

0 Comments