Bandstructure of SrVO3 in GW
Description: the GW bandstructure of SrVO3 using VASP and WANNIER90.
Performing a GW calculation with VASP is a 3-step procedure: a DFT groundstate calculation, a calculation to obtain a number of virtual orbitals, and the actual GW calculation itself. In this example we will also see how the results of the GW calculation may be postprocessed with WANNIER90 to obtain the dispersion of the bands along the usual high symmetry directions in reciprocal space.
The DFT groundstate calculation and bandstructure with wannier90
Everthing starts with a conventional DFT (in this case LDA) groundstate calculation:
- INCAR (see INCAR.DFT)
System = SrVO3 NBANDS = 36 ISMEAR = -5 EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 # usefull energy range for density of states EDIFF = 1E-8 # high precision for groundstate calculation KPAR = 2 LORBIT = 11 LWANNIER90_RUN = .TRUE.
Copy the aforementioned file to INCAR:
cp INCAR.DFT INCAR
- KPOINTS
Automatically generated mesh 0 Gamma 4 4 4 0 0 0
Mind: this is definitely not dense enough for a high-quality description of SrVO3, but in the interest of speed we will live with it.
- POSCAR
SrVO3 3.77706 #taken from 9x9x9 with sigma=0.2 ismear=2 +1.0000000000 +0.0000000000 +0.0000000000 +0.0000000000 +1.0000000000 +0.0000000000 +0.0000000000 +0.0000000000 +1.0000000000 Sr V O 1 1 3 Direct +0.0000000000 +0.0000000000 +0.0000000000 +0.5000000000 +0.5000000000 +0.5000000000 +0.5000000000 +0.5000000000 +0.0000000000 +0.5000000000 +0.0000000000 +0.5000000000 +0.0000000000 +0.5000000000 +0.5000000000
- wannier90.win (see wannier90.win.dft)
WANNIER90 takes its input from the file wannier90.win. To construct Wannier functions for the Vanadium t2g manifold in SrVO3, and plot the dispersion of the associated bands along R-G-X-M, one may use the following settings:
bands_plot = true begin kpoint_path R 0.50000000 0.50000000 0.50000000 G 0.00000000 0.00000000 0.00000000 G 0.00000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 M 0.50000000 0.50000000 0.00000000 M 0.50000000 0.50000000 0.00000000 G 0.00000000 0.00000000 0.00000000 end kpoint_path num_wann = 3 num_bands= 3 exclude_bands : 1-20, 24-36 begin projections V:dxy;dxz;dyz end projections
Copy the above to wannier90.win:
cp wannier90.win.dft wannier90.win
The Vanadium t2g band dispersion thus obtained, may conveniently be visualized with gnuplot:
gnuplot -persist plotme.dft
Mind: Here the eigenvalues have been shifted such that the Fermi level is a 0 eV.
Analysis of the DOS
In the above we have set:
LORBIT = 11
Therefore, in addition to the total density-of-states (DOS), the DOSCAR file contains blocks of information with the site-projected lm-decomposed DOS as well. The site-projected lm-decomposed band character is written to the PROCAR file.
To plot the total DOS and the Vanadium t2g and eg partial-DOS using gnuplot, execute the following command:
./plotdos
Mind: Check the OUTCAR file for the position of the Fermi level. These DOSs have not been shifted such that the Fermi level is at 0 eV.
Obtain DFT virtual orbitals
- INCAR (see INCAR.DIAG)
System = SrVO3 #ISMEAR = -5 # does not work for LOPTICS=.TRUE. ISMEAR = 1 ; SIGMA = 0.2 EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 # usefull energy range for density of states ALGO = Exact ; NELM = 1 # exact diagonalization one step suffices EDIFF = 1E-8 # high precision for groundstate calculation NBANDS = 96 # need for a lot of bands in GW LOPTICS = .TRUE. # we need d phi/ d k for GW calculations KPAR = 2
Copy the aforementioned file to INCAR:
cp INCAR.DIAG INCAR
and restart VASP.
At this stage it is a good idea to make a safety copy of the WAVECAR and WAVEDER files since we will repeatedly need them in the calculations that follow:
cp WAVECAR WAVECAR.DFT.96bands cp WAVEDER WAVEDER.DFT.96bands
The dielectric function
The frequency dependent dielectric function in the independent-particle (IP) picture is written to the OUTCAR and vasprun.xml files. In the OUTCAR you should search for
frequency dependent IMAGINARY DIELECTRIC FUNCTION (independent particle, no local field effects)
and
frequency dependent REAL DIELECTRIC FUNCTION (independent particle, no local field effects)
To visualize the real and imaginary parts of the frequency dependent dielectric function (from the vasprun.xml you may execute
./plotoptics2
The GW calculation
- INCAR (see INCAR.GW0)
System = SrVO3 ISMEAR = -5 EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 # usefull energy range for density of states NBANDS = 96 # need for a lot of bands in GW ALGO = GW0 # NELM = 1 # one step so this is really G0W0 PRECFOCK = Fast # select fast mode for FFT's ENCUTGW = 100 # energy cutoff for response function NOMEGA = 200 # metal, we need a lot of frequency points KPAR = 2
Copy the aforementioned file to INCAR:
cp INCAR.GW0 INCAR
and restart VASP.
Analysis of the DOS and bandstructure with wannier90
- INCAR (see INCAR.NONE)
System = SrVO3 ISMEAR = -5 EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 # usefull energy range for density of states ALGO = None ; NELM = 1 # exact diagonalization one step suffices NBANDS = 96 # need for a lot of bands in GW LORBIT = 11 LWANNIER90_RUN = .TRUE.
Again, copy the aforementioned file to INCAR:
cp INCAR.GW0 INCAR
And use the following input for wannier90:
- wannier90.win (see wannier90.win.gw)
bands_plot = true begin kpoint_path R 0.50000000 0.50000000 0.50000000 G 0.00000000 0.00000000 0.00000000 G 0.00000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 M 0.50000000 0.50000000 0.00000000 M 0.50000000 0.50000000 0.00000000 G 0.00000000 0.00000000 0.00000000 end kpoint_path num_wann = 3 num_bands= 3 exclude_bands : 1-20, 24-96 begin projections V:dxy;dxz;dyz end projections
and restart VASP.
To plot the total DOS and the Vanadium t2g and eg partial-DOS using gnuplot, execute the following command:
./plotdos
Mind: Check the OUTCAR file for the position of the Fermi level. These DOSs have not been shifted such that the Fermi level is at 0 eV.
The dielectric function
To extract the frequency dependent dielectric constant, both in the independent-particle picture as well as including local field effects (either in DFT or in the RPA) and plot the real and imaginary components using gnuplot, execute
./plotchi
Bandstructure using WANNIER90
Again, add the following line to your INCAR to have VASP call WANNIER90:
LWANNIER90_RUN = .TRUE.
and use the following WANNIER90 input:
- wannier90.win.gw
bands_plot = true begin kpoint_path R 0.50000000 0.50000000 0.50000000 G 0.00000000 0.00000000 0.00000000 G 0.00000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 M 0.50000000 0.50000000 0.00000000 M 0.50000000 0.50000000 0.00000000 G 0.00000000 0.00000000 0.00000000 end kpoint_path num_wann = 3 num_bands= 3 exclude_bands : 1-20, 24-96 begin projections V:dxy;dxz;dyz end projections
Copy the above to wannier90.win:
cp wannier90.win.gw wannier90.win
and run VASP.
To compare the Vanadium t2g band dispersion in the GW approximation with the LDA bandstructure, run the following command:
gnuplot -persist plotme.gw
Mind: Here the eigenvalues have been shifted such that the Fermi level is a 0 eV.
A more accurate GW calculation
As you might have noticed in the previous example the Vanadium t2g bands look a bit wobbly along G-X and X-M. In the present example, this turns out to be an artifact of the downsampling of the GW. Try removing (or comment out) the line
NKRED = 2
from the INCAR file, set
ALGO = GW0
restore the DFT solution,
cp WAVECAR.DFT.96bands WAVECAR cp WAVEDER.DFT.96bands WAVEDER
and redo the GW step.
A comparison to the HSE hybrid functional
To illustrate the kind of results one would obtain for SrVO3 using the DFT/Hartree-Fock hybrid functional HSE, without actually doing a full selfconsistent calculation, we will recalculate the one-electron energies and DOS (ALGO=Eigenval) using the HSE functional with DFT orbitals as input:
- INCAR.HSE
System = SrVO3 ISMEAR = -5 EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 # usefull energy range for density of states EDIFF = 1E-8 # high precision for groundstate calculation KPAR = 3 LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; NBANDS = 48 PRECFOCK = Fast ; NELM = 1 ALGO = Eigenval LWAVE = .FALSE. # do not write the wave functions
Copy the aforementioned file to INCAR:
cp INCAR.HSE INCAR
and restart VASP.
Mind: This calculation (and the ones following below) needs to restart from a set of converged DFT wave functions, therefore:
cp WAVECAR.DFT.96bands WAVECAR
Analysis of the DOS
Again, add the following line to your INCAR file:
LORBIT = 11
and rerun VASP.
To plot the total DOS and the Vanadium t2g and eg partial-DOS using gnuplot, execute the following command:
./plotdos
Mind: Check the OUTCAR file for the position of the Fermi level. These DOSs have not been shifted such that the Fermi level is at 0 eV.
Bandstructure using WANNIER90
As before, add the following line to your INCAR to have VASP call WANNIER90:
LWANNIER90_RUN = .TRUE.
and use the following WANNIER90 input:
- wannier90.win.hse
bands_plot = true begin kpoint_path R 0.50000000 0.50000000 0.50000000 G 0.00000000 0.00000000 0.00000000 G 0.00000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000 M 0.50000000 0.50000000 0.00000000 M 0.50000000 0.50000000 0.00000000 G 0.00000000 0.00000000 0.00000000 end kpoint_path num_wann = 3 num_bands= 3 exclude_bands : 1-20, 24-48 begin projections V:dxy;dxz;dyz end projections
Copy the above to wannier90.win:
cp wannier90.win.hse wannier90.win
and redo the HSE calculation.
To compare the HSE Vanadium t2g band dispersion with the LDA bandstructure, run the following command:
gnuplot -persist plotme.hse
Mind: Here the eigenvalues have been shifted such that the Fermi level is a 0 eV.
Download
To the list of examples or to the main page