Bandgap of Si in GW

From VASP Wiki

Description: calculation of the bandgap of Si using various flavours of GW.


To do GW calculations we have to follow a 3-step procedure.

Step 1: a DFT groundstate calculation

Everything starts with a standard DFT groundstate calculation (in this case PBE).

  • INCAR
ISMEAR =  0
SIGMA  =  0.05
GGA    = PE
  • KPOINTS
6x6x6
 0
G
 6 6 6
 0 0 0
  • POSCAR
system Si
5.430
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

Step 2: obtain DFT virtual orbitals

To obtain a WAVECAR file with a reasonable number of virtual orbitals (50-100 per atom) we need to restart from the previous groundstate calculation with ALGO=Exact, and manually set the number of bands by means of the NBANDS-tag. To obtain the corresponding WAVEDER file we additionally specify LOPTICS=.TRUE.

  • INCAR
ALGO = Exact
NBANDS  = 64
LOPTICS = .TRUE.
NEDOS = 2000
## you might try
#LPEAD = .TRUE.

ISMEAR =  0
SIGMA  =  0.05
GGA    = PE

Step 3: the actual GW calculation

Restart from the WAVECAR and WAVEDER files of the previous calculation, with

  • INCAR
## Frequency dependent dielectric tensor including
## local field effects within the RPA (default) or
## including changes in the DFT xc-potential (LRPA=.FALSE.).
## N.B.: beware one first has to have done a
## calculation with ALGO=Exact and LOPTICS=.TRUE.
## and a reasonable number of virtual states (see above)
ALGO = GW0 ; LSPECTRAL = .TRUE. ; NOMEGA = 50
#LRPA = .FALSE. 
## be sure to take the same number of bands as for
## the LOPTICS=.TRUE. calculation, otherwise the
## WAVEDER file is not read correctly
NBANDS = 64

To quickly find the QP-energy of the highest lying occupied state, try

grep "     4     " OUTCAR | sort -n -k 3 | tail -1 | awk '{print $3}'

and for the lowest lying unoccupied state,

grep "     5     " OUTCAR | sort -n -k 3 | head -1 | awk '{print $3}'

Beyond the random-phase-approximation

To include local field effects beyond the random-phase-approximation in the description of the frequency dependent dielectric response function add the following line to your INCAR file:

LRPA = .FALSE.

and again restart from the

Beyond G0W0: GW0

The most usual step beyond single-shot GW (G0W0) is to iterate the quasi-particle energies in the Greens functions. This is the socalled GW0 approximation. To have VASP do, for instance, 4 iterations of the QP-energies in G, add the following line to the INCAR file:

NELM = 4

and again restart from the WAVECAR and WAVEDER files from step 2.

To quickly find the QP-energy of the highest lying occupied state after 4 iterations of the QP energies in G, try

grep "     4     " OUTCAR | tail -16 | sort -n -k 3 | tail -1 | awk '{print $3}'

and for the corresponding lowest lying unoccupied state,

grep "     5     " OUTCAR | tail -16 | sort -n -k 3 | head -1 | awk '{print $3}'

Download

Si_bandgap_GW.tgz


To the list of examples or to the main page