1- The problematic
The electronic band structure is no doubt one of the most widely applied analysis tools in the first-principles electronic structure calculations of crystals, especially within the Kohn-Sham framework [1] of density functional theory [2]. It contains the basic ingredients to almost all the textbook descriptions of crystal properties (e.g. transport, optical and magnetic properties, and the semiclassical treatment [3]). Furthermore, the theoretical band structure, when formulated within the quasiparticle picture of the one-particle Green function, has a direct experimental connection with angular-resolved photoemission spectroscopy (ARPES).
However, the usefulness of the band structure, as well as the agreement with ARPES spectra, diminishes rapidly when a large “super cell” is involved. The use of super cells is a common practice in modern firstprinciples studies when the original periodicity of the system is modified via the introduction of “external” influences from impurities or lattice distortions. They are also widely applied in the presence of spontaneous translational symmetry breaking, say by a charge density wave, a spin density wave, or an orbital ordering.
As illustrated in Fig. 1, when the period of the super cell grows longer, the corresponding first Brillouin zone of the super cell (SBZ) shrinks its size. In turn, bands in the first Brillouin zone of the normal cell (NBZ) get “folded” into the SBZ. For a very large super cell, the resulting SBZ can be tiny in size but contain a large number of “horizontal” looking bands that no longer resemble the original band structure or the experimental ARPES spectra, and cease to be informative besides giving a rough visualization of the density of states (DOS). The information is now hidden in the Kohn-Sham orbitals, instead of the dispersion of the bands.
To learn more about the folding problem read the following article:
https://www.researchgate.net/publication/46423658_Unfolding_First-Principles_Band_Structures
2- Unfolding the bands
To study how to unfold the electronic bands using the wien2k code read the following article
https://arxiv.org/pdf/1405.4218.pdf
FIG. 4. Band structure of Ga64As64 (a) and Ga64As63Bi1 (b) supercells unfolded to the primitive Bloch representation. Bismuth incorporation leads to perturbations in the valence band, reduction of the band gap and enhanced spin-orbit splitting.
3- How to download , compile the "fold2bloch" package
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
Check the following video about how to download the "fold2bloch" package
Check the following video about how to compile the "fold2bloch" package
3- Example of calculation Bismuth in GaAs
Here we create a 16-atoms (2x2x2) supercell of GaAs and replace a single As with Bi. This corresponds to a Ga(AsBi) alloy with to approximately 12% of Bi. Then we compute the unfolded band structure and observe changes in the bands dispersion due to Bismuth incorporation. This tutorial should take roughly 60min to complete. The time was based on 4 thread processing.
The following is the corresponding Supercell:
- Create a working directory called /tutorial_2
mkdir tutorial_2
- Download Ga8As7Bi1.struct and Ga8As7Bi1.klist_band files from (https://github.com/rubel75/fold2Bloch/tree/master/Tutorials/Tutorial_2) into your working directory.
- Run initialization:
init_lapw -b -numk 100
- Run the calculations:
run_lapw
- Recalculate the vector file (Ga8As7Bi1.vector) for the list of k-points in Ga8As7Bi1.klist_band
x lapw1 -band
Please make sure that the
SCRATCH
variable points to your work directory. 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 only ... MB, but for 100 supercells can easily reach 20 GB.
- Create a sub-directory f2b:
mkdir f2b
- Copy Ga8As7Bi1.vector, Ga8As7Bi1.struct and Ga8As7Bi1.klist_band files to the f2b directory and then go there:
cp Ga8As7Bi1.vector Ga8As7Bi1.struct Ga8As7Bi1.klist_band f2b
cd f2b
- Rename Ga8As7Bi1.klist_band to Ga8As7Bi1.klist:
mv Ga8As7Bi1.klist_band Ga8As7Bi1.klist
(Note: if the Ga8As7Bi1.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 Ga8As7Bi1.vector)
- Now that we have all the files we can run fold2Bloch:
~/fold2Bloch/fold2Bloch -c Ga8As7Bi1.vector 2:2:2
Here 2:2:2 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 20, 2014 ** *********************** Complex calculation indicated FILE TO PROCESS: Ga8As7Bi1.vector /\/\/\ UNFOLDING VECTOR FILE /\/\/\ Processing K-Point: 0.500 0.000 0.000 Processing K-Point: 0.444 0.000 0.000 Processing K-Point: 0.389 0.000 0.000 ... Processing K-Point:-0.455-0.455 0.000 \/\/\/ UNFOLDING FINISHED SUCCESSFULLY \/\/\/ Number of K points processed: 39 Data was written to: Ga8As7Bi1.unfolded Data format: KX, KY, KZ, Eigenvalue(Ry), Weight Ga8As7Bi1.klist matches the vector file.
Notice how it says "Ga8As7Bi1.klist matches the vector files", indicating that .klist and .vector files have the same number of k-points.
- Compare the data from Ga8As7Bi1.unfolded that was just created with the following file: Ga8As7Bi1.unfolded
[stud2@feynman f2b]$ head Ga8As7Bi1.unfolded 0.250000 0.000000 0.000000 -2.202982 0.092030 0.250000 0.000000 0.500000 -2.202982 0.142424 0.250000 0.500000 0.000000 -2.202982 0.142421 0.250000 0.500000 0.500000 -2.202982 0.123125 -0.250000 0.000000 0.000000 -2.202982 0.092030 -0.250000 0.000000 0.500000 -2.202982 0.142424 -0.250000 0.500000 0.000000 -2.202982 0.142421 -0.250000 0.500000 0.500000 -2.202982 0.123125 0.250000 0.000000 0.000000 -2.202885 0.086495 0.250000 0.000000 0.500000 -2.202885 0.12626
- You can plot the data in Ga8As7Bi1.unfolded using the ubs_dots.m script and you should have a graph similar to the one below:
Check the following video for this example
0 Comments