Plotting the BSE fatband structure of Si: Difference between revisions

From VASP Wiki
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:BSE}}
{{Template:BSE - Tutorial}}


== Task ==  
== Task ==  
Visualization of BSE eigenvectors using fatbands.
Visualization of the BSE eigenvectors using fatbands.


== Input ==
== Input ==
Line 37: Line 37:
== Calculation ==  
== Calculation ==  


*In this example we will calculate and plot the first "bright" BSE eigenstates of silicon, also called fatbands<ref name="bokdam:scr:6"/>. In this tutorial the modelBSE setup from the previous tutorial is used in combination with a <math>10 \times 10 \times 10</math> gamma centered k-point grid (if you don't want to wait that long, a <math> 4 \times 4 \times 4</math> grid takes only a minute). In principle the standard BSE method can also be used instead.  
*In this example we will calculate and plot the first "bright" BSE eigenstates of silicon, also called fatbands<ref name="bokdam:scr:6"/>. In this tutorial the modelBSE setup from the previous tutorial is used in combination with a 10x10x10 gamma centered k-point grid (Note: This calculation takes ~ 50 min. on 16 cores, if you don't want to wait that long, a 4x4x4 grid requires only a minute.) In principle the standard BSE method can also be used instead.  


=== Step 1 DFT calculation ===
=== Step 1 DFT calculation ===
Line 85: Line 85:
   <v>      3.310      216916.814 </v>
   <v>      3.310      216916.814 </v>
   <v>      3.310      216935.593 </v>
   <v>      3.310      216935.593 </v>
The first number column shows the BSE eigenvalue and the second one the oscillator strength. We want to plot the first "bright" state, that means in this case number 4.
The first number column shows the BSE eigenvalue and the second one the oscillator strength. We are going to plot the first "bright" state, that means in this case number 4.


*We inspect the fourth band in the {{TAG|BSEFATBAND}} output file:
*We inspect the fourth band in the {{TAG|BSEFATBAND}} output file:
Line 106: Line 106:
#line: Number of e-h pairs in the BSE basis and value for {{TAG|NBSEEIG}}.
#line: Number of e-h pairs in the BSE basis and value for {{TAG|NBSEEIG}}.
#line: BSE eigenvalue and minimum band gap before BSE.
#line: BSE eigenvalue and minimum band gap before BSE.
#line: Column 1-3 k-point coordinate, column 4 hole eigenvalue, column 5 electron eigenvalue, column 6 absolute value of coupling coefficient (radius of circles), column 7 hole orbital, column 8 electron number, column 9 real part of coupling coefficient, column 10 imaginary part of coupling coefficient.
#line: Columns 1-3 k-point coordinates, column 4 hole eigenvalue, column 5 electron eigenvalue, column 6 absolute value of coupling coefficient (radius of circles), column 7 hole orbitalnumber, column 8 electron orbitalnumber, column 9 real part of coupling coefficient, column 10 imaginary part of coupling coefficient.
Columns 1-6 are used to plot the fatbands.
Columns 1-6 are used to plot the fatbands.


*Plotting of data:
*Plotting of data:
#Select the BSE eigenstate from the {{TAG|BSEFATBAND}} file which you want to plot.
#Choose the BSE eigenstate from the {{TAG|BSEFATBAND}} file that you want to plot.
#Filter out all e-h pairs that lie on the high symmetry k-lines along which you want to plot the fat bandstructure:
#Filter out all e-h pairs that lie on the high symmetry k-lines along which you want to plot the fat bandstructure:
  #!/bin/bash
  #!/bin/bash
   
  NBSE=1 #Select the BSE eigenvector of interest.
  head -n 113716  BSEFATBAND > tmp.dat
  BSIZE=$(head -n 1 BSEFATBAND|awk '{print $1}') # The BSE product basis size.
  tail -n 28428  BSEFATBAND > BSE4.dat
  i=`echo "($BSIZE+1)*$NBSE+1"|bc`
rm tmp.dat
head -n $i BSEFATBAND | tail -n $BSIZE > BSE-$NBSE.dat #Cut out the selected eigenstate.
  awk <BSE-$NBSE.dat  ' { if ($1==$2 && $3==$2) print sqrt($1*$1+$2*$2+$3*$3), $4, $5, $6 }' >bands-GL.dat
  awk <BSE4.dat  ' { if ($1==$2 && $3==$2) print sqrt($1*$1+$2*$2+$3*$3), $4, $5, $6 }' >bands-GL.dat
  awk <BSE-$NBSE.dat  ' { if ($1==$3 && $2==0.0) print sqrt($1*$1+$2*$2+$3*$3), $4, $5, $6 }' >bands-GX.dat
  awk <BSE4.dat  ' { if ($1==$3 && $2==0.0) print sqrt($1*$1+$2*$2+$3*$3), $4, $5, $6 }' >bands-GX.dat
#Use a plotting program to plot the output in the following manner:
#Use a plotting program to plot the output in the following manner:
  |k-point|  electron        hole          |A|
  |k-point|  electron        hole          |A|
Line 132: Line 131:


== Download ==
== Download ==
[http://www.vasp.at/vasp-workshop/examples/Si_BSEfatbands.tgz Si_BSEfatbands.tgz]
[[Media:Si BSEfatbands.tgz| Si_BSEfatbands.tgz]]


== References ==
== References ==
Line 142: Line 141:




Back to the [[The_VASP_Manual|main page]]


[[Category:Examples]]
[[Category:Examples]]

Latest revision as of 14:17, 14 November 2019

Task

Visualization of the BSE eigenvectors using fatbands.

Input

Si
 5.4300
0.5 0.5 0.0
0.0 0.5 0.5
0.5 0.0 0.5
2
cart
0.00 0.00 0.00 
0.25 0.25 0.25 

INCAR

  • This is the INCAR file for the basic DFT calculation:
System  = Si

PREC = Normal ; ENCUT = 250.0

ISMEAR = 0 ; SIGMA = 0.01
KPAR = 2

EDIFF = 1.E-8
NBANDS = 16
LOPTICS = .TRUE.  # needed for WAVEDER file
LPEAD = .TRUE.
OMEGAMAX = 40

KPOINTS

The KPOINTS file will be automatically generated in this example.


Calculation

  • In this example we will calculate and plot the first "bright" BSE eigenstates of silicon, also called fatbands[1]. In this tutorial the modelBSE setup from the previous tutorial is used in combination with a 10x10x10 gamma centered k-point grid (Note: This calculation takes ~ 50 min. on 16 cores, if you don't want to wait that long, a 4x4x4 grid requires only a minute.) In principle the standard BSE method can also be used instead.

Step 1 DFT calculation

We run a standard DFT calculation with the input files given above.

Step 2 BSE calculation with fatbands

  • The INCAR file for the modelBSE calculation looks like the following:
System  = Si

PREC = Normal ; ENCUT = 250.0

#ALGO = BSE 
ANTIRES = 0
ISMEAR = 0 ; SIGMA = 0.01
ENCUTGW = 150

EDIFF = 1.E-8 # default 1.E-4
NBANDS = 16   # only bands that are used are required, prepare the same set in a forgoing DFT run
NBANDSO = 4
NBANDSV = 8
OMEGAMAX = 20

PRECFOCK = Normal

ALGO = TDHF
LMODELHF = .TRUE. #Turn model on 
HFSCREEN = 1.26  # Screening lenght
AEXX = 0.088    #Inverse of epsilon_infinity
SCISSOR = 0.69  # Difference GW-DFT band gap

NBSEEIG = 10 # number of BSE eigenvectors written out in BSEFATBAND
  • The important tag for fatband calculations is NBSEEIG. In this example this will write the 10 energetically lowest BSE eigenvectors to the output file BSEFATBAND.
  • After the (model)BSE calculation we first look into the vasprun.xml file to have a look at the BSE eigenvalues and the oscillator strengths (exact numbers can of course differ depending on the method you use and the density of your k-point grid):
<varray name="opticaltransitions" >
 <v>      3.148           0.000 </v>
 <v>      3.148           0.000 </v>
 <v>      3.148           0.000 </v>
 <v>      3.149       25654.244 </v> 
 <v>      3.149       25660.601 </v>
 <v>      3.149       25665.652 </v>
 <v>      3.151           0.001 </v>
 <v>      3.151           0.001 </v>
 <v>      3.152         423.751 </v>
 <v>      3.310      216931.963 </v>
 <v>      3.310      216916.814 </v>
 <v>      3.310      216935.593 </v>

The first number column shows the BSE eigenvalue and the second one the oscillator strength. We are going to plot the first "bright" state, that means in this case number 4.

  • We inspect the fourth band in the BSEFATBAND output file:
             28428                10
     1BSE eigenvalue    3.14798542      IP-eigenvalue:    3.25790292
  0.00000  0.00000  0.00000    -6.1302666     9.0994773       0.0000001     1     5     -0.000000+i*    -0.000000
  0.00000  0.00000  0.00000     5.8415744     9.0994773       0.0876503     2     5      0.000076+i*     0.000043
  0.00000  0.00000  0.00000     5.8415744     9.0994773     341.0850802     3     5      0.088630+i*    -0.329369
  0.00000  0.00000  0.00000     5.8415744     9.0994773     543.1678695     4     5      0.361803+i*    -0.405130
  0.00000  0.00000  0.00000    -6.1302666     9.0994773       0.0000004     1     6     -0.000000+i*     0.000000
…(28428-6 more lines till 2BSE eigenvalue …)
     4BSE eigenvalue    3.14855812      IP-eigenvalue:    3.25790292
  0.00000  0.00000  0.00000    -6.1302666     9.0994773       0.0024165     1     5      0.000002+i*     0.000001
  0.00000  0.00000  0.00000     5.8415744     9.0994773      31.4738813     2     5     -0.027821+i*    -0.014718
  0.00000  0.00000  0.00000     5.8415744     9.0994773     187.8684774     3     5      0.049093+i*    -0.181341
  0.00000  0.00000  0.00000     5.8415744     9.0994773     360.1697144     4     5      0.239775+i*    -0.268757
  0.00000  0.00000  0.00000    -6.1302666     9.0994773       0.0289534     1     6      0.000019+i*    -0.000022
...

The description of the values is given as follows:

  1. line: Number of e-h pairs in the BSE basis and value for NBSEEIG.
  2. line: BSE eigenvalue and minimum band gap before BSE.
  3. line: Columns 1-3 k-point coordinates, column 4 hole eigenvalue, column 5 electron eigenvalue, column 6 absolute value of coupling coefficient (radius of circles), column 7 hole orbitalnumber, column 8 electron orbitalnumber, column 9 real part of coupling coefficient, column 10 imaginary part of coupling coefficient.

Columns 1-6 are used to plot the fatbands.

  • Plotting of data:
  1. Choose the BSE eigenstate from the BSEFATBAND file that you want to plot.
  2. Filter out all e-h pairs that lie on the high symmetry k-lines along which you want to plot the fat bandstructure:
#!/bin/bash
NBSE=1 #Select the BSE eigenvector of interest.
BSIZE=$(head -n 1 BSEFATBAND|awk '{print $1}') # The BSE product basis size.
i=`echo "($BSIZE+1)*$NBSE+1"|bc`
head -n $i BSEFATBAND | tail -n $BSIZE > BSE-$NBSE.dat #Cut out the selected eigenstate.
awk <BSE-$NBSE.dat  ' { if ($1==$2 && $3==$2) print sqrt($1*$1+$2*$2+$3*$3), $4, $5, $6 }' >bands-GL.dat
awk <BSE-$NBSE.dat  ' { if ($1==$3 && $2==0.0) print sqrt($1*$1+$2*$2+$3*$3), $4, $5, $6 }' >bands-GX.dat
  1. Use a plotting program to plot the output in the following manner:
|k-point|   electron        hole          |A|
           eigenvalue    eigenvalue
    x          y1            y2         radius
  • The sample output for this tutorial should look like the following:

The fat band picture allows you to visually inspect which e-h pairs contribute the most to a particular BSE eigenstate. When k-point convergence is important, you can use it to truncate your e-h product basisset by choosing smarter NBANDSO/NBANDSV and/or OMEGAMAX values. Try NBANDSO=NBANDSV=2and check how much this effects the BSE results.

Download

Si_BSEfatbands.tgz

References