Bandgap of Si in GW: Difference between revisions

From VASP Wiki
No edit summary
Line 55: Line 55:
GGA    = PE
GGA    = PE
</pre>
</pre>
'''Mind''': make a copy of your {{FILE|WAVECAR}} and {{FILE|WAVEDER}} files, as we will repeatedly need them in the following.
For instance
cp WAVECAR WAVECAR.LOPTICS
cp WAVEDER WAVEDER.LOPTICS


=== Step 3: the actual GW calculation ===
=== Step 3: the actual GW calculation ===
Restart from the {{TAG|WAVECAR}} and {{TAG|WAVEDER}} files of the previous calculation, with
Restart from the {{FILE|WAVECAR}} and {{FILE|WAVEDER}} files of the previous calculation, with


*INCAR
*INCAR
Line 88: Line 94:
  LRPA = .FALSE.
  LRPA = .FALSE.


and again restart from the
and again restart from the {{FILE|WAVECAR}} and {{FILE|WAVEDER}} files from step 2.


=== Beyond G<sub>0</sub>W<sub>0</sub>: GW<sub>0</sub> ===
=== Beyond G<sub>0</sub>W<sub>0</sub>: GW<sub>0</sub> ===

Revision as of 16:36, 7 June 2012

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

Mind: make a copy of your WAVECAR and WAVEDER files, as we will repeatedly need them in the following. For instance

cp WAVECAR WAVECAR.LOPTICS
cp WAVEDER WAVEDER.LOPTICS

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 WAVECAR and WAVEDER files from step 2.

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