Skip to content

Tutorial 2: Bismuth in GaAs

Oleg Rubel edited this page Apr 23, 2023 · 19 revisions

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:

  1. Create a working directory called /tutorial_2

mkdir tutorial_2

  1. Download Ga8As7Bi1.struct and Ga8As7Bi1.klist_band files from (https://github.com/rubel75/fold2Bloch/tree/master/Tutorials/Tutorial_2) into your working directory.

  2. Run initialization:

init_lapw -b -numk 100

  1. Run the calculations:

run_lapw

  1. 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.

  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 only ... MB, but for 100 supercells can easily reach 20 GB.

  1. Create a sub-directory f2b:

mkdir f2b

  1. 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
  1. 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)

  1. Now that we have all the files we can run fold2Bloch:

~/fold2Bloch/fold2Bloch -c Ga8As7Bi1.vector "'2 0 0:0 2 0:0 0 2'"

Here [2 0 0:0 2 0:0 0 2] refers to the supercell transformation matrix, which was constructed by repeating the primitive cell twice along 1st, 2nd, and 3rd lattice vectors. 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.

  1. 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
  1. 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: