First:
Why do we need to unfold the band structure of a suoercell?
Second:
To do this unfolding we need to install "fold2bloch" package as follows:
Reference: https://github.com/rubel75/fold2Bloch-Wien2k/wiki/Installation
Third:
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.htmlSecond:
To do this unfolding we need to install "fold2bloch" package as follows:
- Download "fold2Block.F90", "util.F", and "fetcharg.h" files.
- Create a directory called fold2Bloch
$ mkdir fold2Bloch
- Put the 3 downloaded files into newly created directory:
$ mv fold2Bloch.F90 util.F fetcharg.h ~/fold2Bloch
- 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:
- Create a working directory called 6-atom2D
mkdir 6-atom2D
- 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.
- Run Wien2k initialization:
init_lapw -b -numk 100
or -h for help
- Run regular SCF calculation:
run_lapw
- 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.
- 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.
- 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)
- 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.
- 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
- 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
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
0 Comments