Skip to content

Tutorial 1: Lattice of Hydrogen atoms

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

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_band Please 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 0 0:0 2 0:0 0 3'"

Here 1, 2, 3 refers to the supercell, which was constructed by repeating the primitive cell once, twice, and three times along 1st, 2nd, and 3rd primitive 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 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];
Dp2s = [1 0 0
        0 2 0
        0 0 3]; % transformation matrix used to transform a primitive cell to a supercell
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

Clone this wiki locally