Bandstructure and CRPA of SrVO3: Difference between revisions

From VASP Wiki
(Created page with "{{Template:gw}} == Task == Calculation of the GW bandstructure of SrVO<sub>3</sub> using VASP and [http://www.wannier.org WANNIER90]. ---- Performing a GW calculation with...")
 
No edit summary
Line 1: Line 1:
{{Template:gw}}
{{Template:gw}}
== DFT, GW and HSE Calculation ==


== Task ==
=== DFT groundstate calculation ===
 
The first step is a conventional DFT (in this case PBE) groundstate calculation.
Calculation of the GW bandstructure of SrVO<sub>3</sub> using VASP and [http://www.wannier.org 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 [http://www.wannier.org WANNIER90] to obtain the dispersion of the bands along the usual high symmetry directions in reciprocal space.
 
'''N.B.:''' This example involves quite a number of individual calculations.
The easiest way to run this example is to execute:
./doall.sh
 
And compare the output of the different steps (DFT, GW, HSE) by:
./plotall.sh
 
In any case, one can consider the <tt>doall.sh</tt> script to be an overview of the steps described below.
 
== The DFT groundstate calculation and bandstructure with <tt>wannier90</tt>==
 
Everthing starts with a conventional DFT (in this case LDA) groundstate calculation:


*{{TAG|INCAR}} (see INCAR.DFT)
*{{TAG|INCAR}} (see INCAR.DFT)
   
   
  {{TAGBL|System}}  = SrVO3                                                                                                                                              
  {{TAGBL|System}}  = SrVO3                       # system name       
                                                                                                                                                                 
  {{TAGBL|NBANDS}} = 36                           # small number  of bands 
  {{TAGBL|NBANDS}} = 36                                                                                                                                                  
  {{TAGBL|ISMEAR}} = 0                            # Gaussian smearing  
                                                                                                                                                               
  {{TAGBL|EDIFF}} = 1E-8                          # high precision for groundstate calculation
  {{TAGBL|ISMEAR}} = -5                                                                                                                                                   
  {{TAGBL|KPAR}} = 2                               # parallelization of k-points in two groups 
{{TAGBL|EMIN}} = -20 ; {{TAGBL|EMAX}} = 20 ; {{TAGBL|NEDOS}} = 1000 # usefull energy range for density of states                                                                           
                                                                                                                                                             
  {{TAGBL|EDIFF}} = 1E-8                          # high precision for groundstate calculation                                                                          
                                                                                                                                                             
  {{TAGBL|KPAR}} = 2                                                                                                                                                      
                                                                                                                                                             
{{TAGBL|LORBIT}} = 11   
{{TAGBL|LWANNIER90_RUN}} = .TRUE.                #execute wannier90 in library mode                                                                                                                                                                                                                                                                                       


Copy the aforementioned file to {{TAG|INCAR}}:
Copy the aforementioned file to {{TAG|INCAR}}:
Line 44: Line 17:
  cp INCAR.DFT INCAR
  cp INCAR.DFT INCAR


*{{TAG|KPOINTS}}
The {{TAG|POSCAR}} file describes the structure of the system:
<pre>
Automatically generated mesh
      0
Gamma
4 4 4
0 0 0
</pre>
 
'''Mind''': this is definitely not dense enough for a high-quality description of SrVO<sub>3</sub>, but in the interest of speed we will live with it.
 
*{{TAG|POSCAR}}
*{{TAG|POSCAR}}
<pre>
<pre>
Line 71: Line 34:
  +0.0000000000  +0.5000000000  +0.5000000000
  +0.0000000000  +0.5000000000  +0.5000000000
</pre>
</pre>
This file remains unchanged in the following.


*wannier90.win (see wannier90.win.dft)
The {{TAG|KPOINTS}} file describes how the first Brillouin zone is sampled.
 
In the first step we use a uniform k-point sampling:
[http://www.wannier.org WANNIER90] takes its input from the file {{FILE|wannier90.win}}.
*{{TAG|KPOINTS}} (see KPOINTS.BULK)
To construct Wannier functions for the Vanadium ''t<sub>2g</sub>'' manifold in SrVO<sub>3</sub>, and plot the dispersion of the associated bands along R-G-X-M, one may use the following settings:
 
<pre>
<pre>
bands_plot = true
Automatically generated mesh
 
      0
begin kpoint_path
Gamma
R  0.50000000  0.50000000  0.50000000  G  0.00000000  0.00000000  0.00000000
  4 4 4
G  0.00000000  0.00000000  0.00000000  X  0.50000000  0.00000000  0.00000000
  0 0 0
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
 
 
# DFT energy window
dis_win_min = 6.4
dis_win_max = 9.0
 
begin projections
V:dxy;dxz;dyz
end projections
</pre>
</pre>


Copy the above to {{FILE|wannier90.win}}:
'''Mind''': this is definitely not dense enough for a high-quality description of SrVO<sub>3</sub>, but in the interest of speed we will live with it.
 
Copy the aforementioned file to {{TAG|KPOINTS}}:
cp wannier90.win.dft wannier90.win


and run vasp.
cp KPOINTS.BULK KPOINTS


If all went well, the Vanadium ''t<sub>2g</sub>'' band dispersion thus obtained, may conveniently be visualized with ''gnuplot'':
and run VASP. If all went well, one should obtain a {{TAG|WAVECAR}} file containing the PBE wavefunction.


gnuplot -persist ./wannier90_band.gnu
=== Obtain DFT virtual states and long-wave limit ===
 
Use following {{TAG|INCAR}} file to increase the number of virtual states and to determine the long-wave limit of the polarizability (stored in {{TAG|WAVEDER}}):
:'''N.B.:''' Most modern versions of <tt>gnuplot</tt> will respond with an error message unless you remove the first line of <tt>wannier90_band.gnu</tt> (some deprecated syntax issue).
 
'''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:
 
{{TAGBL|LORBIT}} = 11
 
Therefore, in addition to the total density-of-states (DOS), the {{FILE|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 {{FILE|PROCAR}} file.
 
To plot the total DOS and the Vanadium ''t<sub>2g</sub>'' and ''e<sub>g</sub>'' partial-DOS using ''gnuplot'', execute the following command:
 
./plotdos
 
'''Mind''': Check the {{FILE|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 ==


*{{TAG|INCAR}} (see INCAR.DIAG)
*{{TAG|INCAR}} (see INCAR.DIAG)
 
  {{TAGBL|System}} = SrVO3
  {{TAGBL|System}} = SrVO3                         # system name     
   
  {{TAGBL|ISMEAR}} = 0                            # Gaussian smearing                                   
  #{{TAGBL|ISMEAR}} = -5                          # does not work for LOPTICS=.TRUE.
  {{TAGBL|KPAR}} = 2                               # parallelization of k-points in two groups  
  {{TAGBL|ISMEAR}} = 1 ; {{TAGBL|SIGMA}} = 0.2
  {{TAGBL|ALGO}} = Exact                           # exact diagonalization
{{TAGBL|EMIN}} = -20 ; {{TAGBL|EMAX}} = 20 ; {{TAGBL|NEDOS}} = 1000 # usefull energy range for density of states
  {{TAGBL|NELM}} = 1                               # one electronic step suffices, since WAVECAR from previous step is present
   
  {{TAGBL|ALGO}} = Exact  ; {{TAGBL|NELM}} = 1               # exact diagonalization one step suffices
{{TAGBL|EDIFF}} = 1E-8                          # high precision for groundstate calculation
  {{TAGBL|NBANDS}} = 96                            # need for a lot of bands in GW
  {{TAGBL|NBANDS}} = 96                            # need for a lot of bands in GW
  {{TAGBL|LOPTICS}} = .TRUE.                      # we need d phi/ d k  for GW calculations
  {{TAGBL|LOPTICS}} = .TRUE.                      # we need d phi/ d k  for GW calculations for long-wave limit
     
{{TAGBL|KPAR}} = 2
 
Copy the aforementioned file to {{TAG|INCAR}}:
 
cp INCAR.DIAG INCAR
 
and restart VASP.


At this stage it is a good idea to make a safety copy of the {{FILE|WAVECAR}} and {{FILE|WAVEDER}} files since we will repeatedly need them in the calculations that follow:
Restart VASP.
At this stage it is a good idea to make a safety copy of the {{TAG|WAVECAR}} and {{TAG|WAVEDER}} files since we will repeatedly need them in the calculations that follow:  
cp {{TAGBL|WAVECAR}} WAVECAR.DIAG
cp {{TAGBL|WAVEDER}} WAVEDER.DIAG
Also make a backup of the charge density for later:
cp {{TAGBL|CHGCAR}} CHGCAR.DIAG


cp WAVECAR WAVECAR.DFT.96bands
=== GW Calculation ===
cp WAVEDER WAVEDER.DFT.96bands
The actual GW calculation uses the PBE solution as a basis set:
 
cp WAVECAR.DIAG {{TAGBL|WAVECAR}}  
=== The dielectric function ===
cp WAVEDER.DIAG {{TAGBL|WAVEDER}}
 
The frequency dependent dielectric function in the independent-particle (IP) picture is written to the {{FILE|OUTCAR}} and {{FILE|vasprun.xml}} files.
In the {{FILE|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 {{FILE|vasprun.xml}} you may execute
 
./plotoptics2
 
== The GW calculation ==


The following {{TAG|INCAR}} file selects a so-called 'single shot' GW calculation:
*{{TAG|INCAR}} (see INCAR.GW0)
*{{TAG|INCAR}} (see INCAR.GW0)
 
  {{TAGBL|System}} = SrVO3
  {{TAGBL|System}} = SrVO3                         # system name     
     
  {{TAGBL|ISMEAR}} = 0                            # Gaussian smearing 
  {{TAGBL|ISMEAR}} = -5
  {{TAGBL|KPAR}} = 2                              # parallelization of k-points in two groups 
  {{TAGBL|EMIN}} = -20 ; {{TAGBL|EMAX}} = 20 ; {{TAGBL|NEDOS}} = 1000  # usefull energy range for density of states
{{TAGBL|ALGO}} = GW0                            # GW with iteration in G, W kept on DFT level
   
{{TAGBL|NELM}} = 1                              # one electronic step suffices, since WAVECAR from previous step is present
  {{TAGBL|NBANDS}} = 96                            # need for a lot of bands in GW
  {{TAGBL|NBANDS}} = 96                            # need for a lot of bands in GW
   
  {{TAGBL|PRECFOCK}} = Fast                        # fast mode for FFTs
{{TAGBL|ALGO}} = GW0                            #
  {{TAGBL|ENCUTGW}} = 100                          # small energy cutoff for response function suffices for this tutorial
{{TAGBL|NELM}} = 1                              # one step so this is really G0W0
  {{TAGBL|NOMEGA}} = 200                          # large number of real frequency points for Hilbert transforms of W and self-energy
  {{TAGBL|PRECFOCK}} = Fast                        # select fast mode for FFT's
  {{TAGBL|ENCUTGW}} = 100                          # energy cutoff for response function
  {{TAGBL|NOMEGA}} = 200                          # metal, we need a lot of frequency points
   
{{TAGBL|KPAR}} = 2
 
Copy the aforementioned file to {{TAG|INCAR}}:


cp INCAR.GW0 INCAR
Restarting VASP will overwrite the present {{TAGBL|WAVECAR}} and {{TAGBL|vasprun.xml}} file. Make a copy them for later.  
 
  cp {{TAGBL|WAVECAR}} WAVECAR.GW0
and restart VASP.
 
=== Analysis of the DOS and bandstructure with <tt>wannier90</tt> ===
 
*{{TAG|INCAR}} (see INCAR.NONE)
 
{{TAGBL|System}} = SrVO3
   
{{TAGBL|ISMEAR}} = -5
{{TAGBL|EMIN}} = -20 ; {{TAGBL|EMAX}} = 20 ; {{TAGBL|NEDOS}} = 1000  # usefull energy range for density of states
   
{{TAGBL|ALGO}} = None ; {{TAGBL|NELM}} = 1                # exact diagonalization one step suffices
{{TAGBL|NBANDS}} = 96                            # need for a lot of bands in GW
   
{{TAGBL|LORBIT}} = 11
   
{{TAGBL|LWANNIER90_RUN}} = .TRUE.
 
Again, copy the aforementioned file to {{TAG|INCAR}}:
 
cp INCAR.GW0 INCAR
 
And use the following input for <tt>wannier90</tt>:
*wannier90.win (see wannier90.win.gw)
<pre>
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
</pre>
 
and restart VASP.
 
If all went well, the Vanadium ''t<sub>2g</sub>'' band dispersion thus obtained, may conveniently be visualized with ''gnuplot'':
 
gnuplot -persist ./wannier90_band.gnu
 
:'''N.B.:''' Most modern versions of <tt>gnuplot</tt> will respond with an error message unless you remove the first line of <tt>wannier90_band.gnu</tt> (some deprecated syntax issue).
 
To plot the total DOS and the Vanadium ''t<sub>2g</sub>'' and ''e<sub>g</sub>'' partial-DOS using ''gnuplot'', execute the following command:
 
./plotdos
 
'''Mind''': Check the {{FILE|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
 
== A comparison to the HSE hybrid functional ==
 
To illustrate the kind of results one would obtain for SrVO<sub>3</sub> using the [[Hartree-Fock_and_HF/DFT_hybrid_functionals#range_separated|DFT/Hartree-Fock hybrid functional HSE]], without actually doing a full selfconsistent calculation, we will recalculate the one-electron energies and DOS ({{TAG|ALGO}}=Eigenval) using the HSE functional with DFT orbitals as input:


=== HSE Calculation ===
To accelerate the electronic convergence it is wise to start the HSE calculation from the PBE solution:
cp WAVECAR.DIAG {{TAGBL|WAVECAR}}
cp WAVEDER.DIAG {{TAGBL|WAVEDER}}
The HSE wavefunction can be obtained with following control file:
*{{TAG|INCAR}} (see INCAR.HSE)
*{{TAG|INCAR}} (see INCAR.HSE)
{{TAGBL|System}} = SrVO3                        # system name                 
{{TAGBL|ISMEAR}} = 0                            # Gaussian smearing           
{{TAGBL|KPAR}} = 2                              # parallelization of k-points in two groups 
{{TAGBL|ALGO}} = Eigenval                        # calulate eigenvalues
{{TAGBL|NELM}} = 1                              # one electronic step suffices, since WAVECAR from previous step is present
{{TAGBL|NBANDS}} = 48                            # small number of bands suffice
{{TAGBL|PRECFOCK}} = Fast                        # fast mode for FFTs
{{TAGBL|LHFCALC}} = .TRUE.                      # switch on Hartree-Fock routines to calculate exact exchange
{{TAGBL|HFSCREEN}} = 0.2                        # HSE06 screening parameter


{{TAGBL|System}}  = SrVO3
Restart VASP and make a copy of the wavefunction for post-processing
   
  cp {{TAGBL|WAVECAR}} WAVECAR.HSE
{{TAGBL|ISMEAR}} = -5
{{TAGBL|EMIN}} = -20 ; {{TAGBL|EMAX}} = 20 ; {{TAGBL|NEDOS}} = 1000  # usefull energy range for density of states
   
{{TAGBL|EDIFF}} = 1E-8                          # high precision for groundstate calculation
   
{{TAGBL|KPAR}} = 2
  {{TAGBL|LHFCALC}} = .TRUE.  ; {{TAGBL|HFSCREEN}} = 0.2  ; {{TAGBL|NBANDS}} = 48
{{TAGBL|PRECFOCK}} = Fast  ; {{TAGBL|NELM}} = 1
{{TAGBL|ALGO}} = Eigenval
   
{{TAGBL|LWAVE}} = .FALSE.                        # do not write the wave functions
   
{{TAGBL|LORBIT}} = 11 
   
{{TAGBL|LWANNIER90_RUN}} = .TRUE.


== CRPA Calculation (optional) ==
Calculate the CRPA interaction parameters for the t2g states by using the PBE wavefunction as input
cp WAVECAR.DIAG {{TAGBL|WAVECAR}}
cp WAVEDER.DIAG {{TAGBL|WAVEDER}}
Use following Wannier projection for the basis:


Copy the aforementioned file to {{TAG|INCAR}}:
*{{TAG|wannier90.win}} (see wannier90.win.CRPA)
num_wann =    3
num_bands=  96
# PBE energy window of t2g states (band 21-23)
dis_win_min = 6.4
dis_win_max = 9.0
begin projections
  V:dxy;dxz;dyz
end projections


  cp INCAR.HSE INCAR
Copy this file to wannier90.win
  cp wannier90.win.CRPA wannier90.win


Use the following [http://www.wannier.org WANNIER90] input:
And use following input file as
*wannier90.win (see wannier90.win.hse)
*{{TAG|INCAR}} (see INCAR.CRPA)
<pre>
bands_plot = true
{{TAGBL|System}} = SrVO3                        # system name                 
{{TAGBL|ISMEAR}} = 0                            # Gaussian smearing   
{{TAGBL|NCSHMEM}} = 1                            # switch off shared memory for chi       
{{TAGBL|ALGO}} = CRPA                            # Switch on CRPA
{{TAGBL|NBANDS}} = 96                            # CRPA needs many empty states
{{TAGBL|PRECFOCK}} = Fast                        # fast mode for FFTs
{{TAGBL|NTARGET_STATES}} = 1 2 3                # exclude wannier states 1 - 3 in screening
LWRITE_WANPROJ = .TRUE.                # write wannier projection file


begin kpoint_path
and run VASP. The CRPA interaction values can be found in the {{TAG|OUTCAR}} file after following lines
R 0.50000000  0.50000000  0.50000000  G  0.00000000  0.00000000  0.00000000
  screened Coulomb repulsion U_iijj between MLWFs:
G  0.00000000  0.00000000  0.00000000 X  0.50000000  0.00000000  0.00000000
including an averaged value:
X  0.50000000  0.00000000  0.00000000  M  0.50000000  0.50000000  0.00000000
  screened Hubbard U =    3.4503  -0.0000
M  0.50000000  0.50000000  0.00000000  G 0.00000000  0.00000000  0.00000000
Make a copy of the output file
end kpoint_path
  cp {{TAGBL|OUTCAR}} OUTCAR.CRPA


num_wann =   3
=== CRPA calculation on full imaginary frequency axis (optional) ===
To calculate the CRPA interaction for a set of imaginary frequency points use once again the PBE wavefunction as input
cp WAVECAR.DIAG {{TAGBL|WAVECAR}}
cp WAVEDER.DIAG {{TAGBL|WAVEDER}}
This step requires uses the WANPROJ file from previous step, no wannier90.win file is necessary.


num_bands=   3
Select the space-time CRPA algorithm with following file:
*{{TAG|INCAR}} (see INCAR.CRPAR)
{{TAGBL|System}} = SrVO3                        # system name                 
{{TAGBL|ISMEAR}} = 0                            # Gaussian smearing           
{{TAGBL|NCSHMEM}} = 1                            # switch off shared memory for chi 
{{TAGBL|ALGO}} = CRPAR                          # Switch on CRPA on imaginary axis
{{TAGBL|NBANDS}} = 96                            # CRPA needs many empty states
{{TAGBL|PRECFOCK}} = Fast                        # fast mode for FFTs
{{TAGBL|NTARGET_STATES}} = 1 2 3                 # exclude wannier states 1 - 3 in screening
{{TAGBL|NCRPA_BANDS}} = 21 22 23                # remove bands 21-23 in screening, currently required for space-time algo
{{TAGBL|NOMEGA}} = 12                            # use 12 imaginary frequency points
{{TAGBL|NTAUPAR}} = 4                            # distribute 12 time points into 4 groups


exclude_bands : 1-20, 24-48
Run VASP. Make a copy of the output file
cp {{TAGBL|OUTCAR}} OUTCAR.CRPAR


begin projections
== Post-processing: Density of states and Band structure for PBE, GW and HSE ==
V:dxy;dxz;dyz
end projections
</pre>


Copy the above to {{FILE|wannier90.win}}:
===  Density of States ===
The DOS of the PBE, GW and HSE solution can be calculated in a post-processing step with
*{{TAG|INCAR}} (see INCAR.DOS)
{{TAGBL|System}} = SrVO3                        # system name                 
{{TAGBL|ISMEAR}} = -5                            # Bloechl's tetrahedron method (requires at least 3x3x3 k-points)           
{{TAGBL|ALGO}} = NONE                            # no electronic changes required
{{TAGBL|NELM}} = 1                              # one electronic step suffices, since WAVECAR from previous step is present
{{TAGBL|NBANDS}} = 48                            # number of bands used
{{TAGBL|EMIN}} = -20 ; {{TAGBL|EMAX}} = 20                # smallest/largest energy included in calculation
{{TAGBL|NEDOS}} = 1000                          # sampling points for DOS
{{TAGBL|LORBIT}} = 11                            # calculate l-m decomposed DOS
{{TAGBL|LWAVE}} = .FALSE.                        # do not overwrite WAVECAR
{{TAGBL|LCHARG}} = .FALSE.                      # do not overwrite CHGCAR


  cp wannier90.win.hse wannier90.win
and requires the apropriate {{TAG|WAVECAR}} file from one of the previous steps. Copy
cp WAVECAR.DIAG WAVECAR
or
cp WAVECAR.GW0 WAVECAR
or
  cp WAVECAR.HSE WAVECAR
and restart VASP. The density of states is written to {{TAG|DOSCAR}}, make a copy of this file
cp {{TAGBL|DOSCAR}} DOSCAR.XXX
where XXX is either PBE, GW0 or HSE. Visualize the projected DOS for the V-t2g, V-eg and O-p states with the scriptfile
./plotdos.sh DOSCAR.*
This requires gnuplot to be installed.


*{{TAG|WAVECAR}}
===  Band structure with <tt>wannier90</tt>===
'''Mind''': This calculation (and the ones following below) needs to restart from a set of converged DFT wave functions, therefore:
The band structure can be calculated via Wannier interpolation using <tt>wannier90</tt> in the library mode
 
*{{TAG|INCAR}} (see INCAR.WAN)
  cp WAVECAR.DFT.96bands WAVECAR
{{TAGBL|System}} = SrVO3                        # system name                 
 
{{TAGBL|ISMEAR}} = 0                            # Gaussian smearing
and run vasp.
{{TAGBL|ALGO}} = NONE                            # no electronic changes required
 
{{TAGBL|NELM}} = 1                              # one electronic step suffices, since WAVECAR from previous step is present
If all went well, the Vanadium ''t<sub>2g</sub>'' band dispersion thus obtained, may conveniently be visualized with ''gnuplot'':
{{TAGBL|NBANDS}} = 48                            # number of bands used
  {{TAGBL|LWAVE}} = .FALSE.                       # do not overwrite WAVECAR
{{TAGBL|LCHARG}} = .FALSE.                      # do not overwrite CHGCAR
{{TAGBL|LWANNIER90_RUN}} = .TRUE.                # run wannier90 in library mode
Use the corresponding wannier90.win.XXX file as input for <tt>wannier90</tt>
cp wannier90.win.XXX wannier90.win
where XXX=PBE, GW0 or HSE and looks similar to
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
# number of wannier states
num_wann =    3
# number of bloch bands
num_bands=  96
# GW energy window for t2g states
dis_win_min = 7.4
dis_win_max = 9.95
begin projections
V:dxy;dxz;dyz
end projections


Use the corresponding WAVECAR.XXX file as imput
cp WAVECAR.XXX {{TAGBL|WAVECAR}}
and restart VASP. If all went well, the Vanadium t2g band dispersion thus obtained, may conveniently be visualized with gnuplot:
  gnuplot -persist ./wannier90_band.gnu
  gnuplot -persist ./wannier90_band.gnu


:'''N.B.:''' Most modern versions of <tt>gnuplot</tt> will respond with an error message unless you remove the first line of <tt>wannier90_band.gnu</tt> (some deprecated syntax issue).
:'''N.B.:''' Most modern versions of <tt>gnuplot</tt> will respond with an error message unless you remove the first line of <tt>wannier90_band.gnu</tt> (some deprecated syntax issue).


'''Mind''': Here the eigenvalues have been shifted such that the Fermi level is a 0 eV.
=== Alternative way to calculate the PBE band structure ===
VASP allows to interpolate the PBE band structure from the PBE charge density
  cp CHGCAR.DIAG CHGCAR
  cp WAVECAR.DIAG WAVECAR
by adapting the {{TAG|KPOINTS}} file as follows:
*{{TAG|KPOINTS}} (see KPOINTS.BSTR)
Auto
15
Linemode
reciprocal
0.50000000  0.50000000  0.50000000  !R
0.00000000  0.00000000  0.00000000  !G
0.00000000  0.00000000  0.00000000  !G
0.50000000  0.00000000  0.00000000  !X
0.50000000  0.00000000  0.00000000  !X
0.50000000  0.50000000  0.00000000  !M
0.50000000  0.50000000  0.00000000  !M
0.00000000  0.00000000  0.00000000  !G
The following {{TAGBL|INCAR}} file tells VASP to interpolate the band structure:
*{{TAG|INCAR}} (see INCAR.BSTR)
{{TAGBL|System}} = SrVO3                        # system name                 
{{TAGBL|ISMEAR}} = 0                            # Gaussian smearing
{{TAGBL|EDIFF}} = 1E-7                          # tight convergence criterion
{{TAGBL|NBANDS}} = 36                            # 36 bands are sufficient
{{TAGBL|LWAVE}} = .FALSE.                        # do not overwrite WAVECAR
{{TAGBL|LCHARG}} = .FALSE.                      # do not overwrite CHGCAR
{{TAGBL|ICHARG}} = 11                            # use CHGCAR file for interpolation
{{TAGBL|LORBIT}} = 11                            # compute lm-decomposed states
{{TAGBL|EMIN}} = -20 ; {{TAGBL|EMAX}} = 20                # smallest/largest energy included in calculation
{{TAGBL|NEDOS}} = 1000                          # sampling points for DOS
This PBE band structure and the Wannier-interpolated structures of the PBE, HSE and GW calculation can be compared via
./plotbands.sh


To plot the total DOS and the Vanadium ''t<sub>2g</sub>'' and ''e<sub>g</sub>'' partial-DOS using ''gnuplot'', execute the following command:
./plotdos
'''Mind''': Check the {{FILE|OUTCAR}} file for the position of the Fermi level. These DOSs have not been shifted such that the Fermi level is at 0 eV.
== Download ==
[http://www.vasp.at/vasp-workshop/examples/SrVO3_GW_band.tgz SrVO3_GW_band.tgz]
{{Template:gw}}
{{Template:gw}}



Revision as of 18:43, 2 July 2018

DFT, GW and HSE Calculation

DFT groundstate calculation

The first step is a conventional DFT (in this case PBE) groundstate calculation.

System  = SrVO3                        # system name         
NBANDS = 36                            # small number  of bands  
ISMEAR = 0                             # Gaussian smearing  
EDIFF = 1E-8                           # high precision for groundstate calculation
KPAR = 2                               # parallelization of k-points in two groups  

Copy the aforementioned file to INCAR:

cp INCAR.DFT INCAR

The POSCAR file describes the structure of the system:

SrVO3
3.84652  #cubic fit for 6x6x6 k-points
 +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

This file remains unchanged in the following.

The KPOINTS file describes how the first Brillouin zone is sampled. In the first step we use a uniform k-point sampling:

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. Copy the aforementioned file to KPOINTS:

cp KPOINTS.BULK KPOINTS

and run VASP. If all went well, one should obtain a WAVECAR file containing the PBE wavefunction.

Obtain DFT virtual states and long-wave limit

Use following INCAR file to increase the number of virtual states and to determine the long-wave limit of the polarizability (stored in WAVEDER):

System = SrVO3                         # system name       
ISMEAR = 0                             # Gaussian smearing                                     
KPAR = 2                               # parallelization of k-points in two groups  
ALGO = Exact                           # exact diagonalization 
NELM = 1                               # one electronic step suffices, since WAVECAR from previous step is present
NBANDS = 96                            # need for a lot of bands in GW
LOPTICS = .TRUE.                       # we need d phi/ d k  for GW calculations for long-wave limit

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.DIAG
cp WAVEDER WAVEDER.DIAG

Also make a backup of the charge density for later:

cp CHGCAR CHGCAR.DIAG

GW Calculation

The actual GW calculation uses the PBE solution as a basis set:

cp WAVECAR.DIAG WAVECAR 
cp WAVEDER.DIAG WAVEDER

The following INCAR file selects a so-called 'single shot' GW calculation:

System = SrVO3                         # system name      
ISMEAR = 0                             # Gaussian smearing  
KPAR = 2                               # parallelization of k-points in two groups  
ALGO = GW0                             # GW with iteration in G, W kept on DFT level
NELM = 1                               # one electronic step suffices, since WAVECAR from previous step is present
NBANDS = 96                            # need for a lot of bands in GW
PRECFOCK = Fast                        # fast mode for FFTs
ENCUTGW = 100                          # small energy cutoff for response function suffices for this tutorial
NOMEGA = 200                           # large number of real frequency points for Hilbert transforms of W and self-energy

Restarting VASP will overwrite the present WAVECAR and vasprun.xml file. Make a copy them for later.

cp WAVECAR WAVECAR.GW0

HSE Calculation

To accelerate the electronic convergence it is wise to start the HSE calculation from the PBE solution:

cp WAVECAR.DIAG WAVECAR 
cp WAVEDER.DIAG WAVEDER

The HSE wavefunction can be obtained with following control file:

System = SrVO3                         # system name                  
ISMEAR = 0                             # Gaussian smearing            
KPAR = 2                               # parallelization of k-points in two groups  
ALGO = Eigenval                        # calulate eigenvalues 
NELM = 1                               # one electronic step suffices, since WAVECAR from previous step is present
NBANDS = 48                            # small number of bands suffice
PRECFOCK = Fast                        # fast mode for FFTs
LHFCALC = .TRUE.                       # switch on Hartree-Fock routines to calculate exact exchange
HFSCREEN = 0.2                         # HSE06 screening parameter

Restart VASP and make a copy of the wavefunction for post-processing

cp WAVECAR WAVECAR.HSE

CRPA Calculation (optional)

Calculate the CRPA interaction parameters for the t2g states by using the PBE wavefunction as input

cp WAVECAR.DIAG WAVECAR 
cp WAVEDER.DIAG WAVEDER

Use following Wannier projection for the basis:

num_wann =    3
num_bands=   96

# PBE energy window of t2g states (band 21-23)
dis_win_min = 6.4
dis_win_max = 9.0

begin projections
 V:dxy;dxz;dyz
end projections

Copy this file to wannier90.win

cp wannier90.win.CRPA wannier90.win

And use following input file as

System = SrVO3                         # system name                  
ISMEAR = 0                             # Gaussian smearing     
NCSHMEM = 1                            # switch off shared memory for chi        
ALGO = CRPA                            # Switch on CRPA 
NBANDS = 96                            # CRPA needs many empty states
PRECFOCK = Fast                        # fast mode for FFTs
NTARGET_STATES = 1 2 3                 # exclude wannier states 1 - 3 in screening
LWRITE_WANPROJ = .TRUE.                # write wannier projection file 

and run VASP. The CRPA interaction values can be found in the OUTCAR file after following lines

screened Coulomb repulsion U_iijj between MLWFs:

including an averaged value:

screened Hubbard U =    3.4503   -0.0000

Make a copy of the output file

cp OUTCAR OUTCAR.CRPA

CRPA calculation on full imaginary frequency axis (optional)

To calculate the CRPA interaction for a set of imaginary frequency points use once again the PBE wavefunction as input

cp WAVECAR.DIAG WAVECAR 
cp WAVEDER.DIAG WAVEDER

This step requires uses the WANPROJ file from previous step, no wannier90.win file is necessary.

Select the space-time CRPA algorithm with following file:

System = SrVO3                         # system name                  
ISMEAR = 0                             # Gaussian smearing            
NCSHMEM = 1                            # switch off shared memory for chi  
ALGO = CRPAR                           # Switch on CRPA on imaginary axis
NBANDS = 96                            # CRPA needs many empty states
PRECFOCK = Fast                        # fast mode for FFTs
NTARGET_STATES = 1 2 3                 # exclude wannier states 1 - 3 in screening
NCRPA_BANDS = 21 22 23                 # remove bands 21-23 in screening, currently required for space-time algo
NOMEGA = 12                            # use 12 imaginary frequency points
NTAUPAR = 4                            # distribute 12 time points into 4 groups 

Run VASP. Make a copy of the output file

cp OUTCAR OUTCAR.CRPAR

Post-processing: Density of states and Band structure for PBE, GW and HSE

Density of States

The DOS of the PBE, GW and HSE solution can be calculated in a post-processing step with

System = SrVO3                         # system name                  
ISMEAR = -5                            # Bloechl's tetrahedron method (requires at least 3x3x3 k-points)             
ALGO = NONE                            # no electronic changes required 
NELM = 1                               # one electronic step suffices, since WAVECAR from previous step is present
NBANDS = 48                            # number of bands used 
EMIN = -20 ; EMAX = 20                 # smallest/largest energy included in calculation
NEDOS = 1000                           # sampling points for DOS
LORBIT = 11                            # calculate l-m decomposed DOS
LWAVE = .FALSE.                        # do not overwrite WAVECAR
LCHARG = .FALSE.                       # do not overwrite CHGCAR

and requires the apropriate WAVECAR file from one of the previous steps. Copy

cp WAVECAR.DIAG WAVECAR

or

cp WAVECAR.GW0 WAVECAR

or

cp WAVECAR.HSE WAVECAR 

and restart VASP. The density of states is written to DOSCAR, make a copy of this file

cp DOSCAR DOSCAR.XXX

where XXX is either PBE, GW0 or HSE. Visualize the projected DOS for the V-t2g, V-eg and O-p states with the scriptfile

./plotdos.sh DOSCAR.*

This requires gnuplot to be installed.

Band structure with wannier90

The band structure can be calculated via Wannier interpolation using wannier90 in the library mode

System = SrVO3                         # system name                  
ISMEAR = 0                             # Gaussian smearing 
ALGO = NONE                            # no electronic changes required 
NELM = 1                               # one electronic step suffices, since WAVECAR from previous step is present
NBANDS = 48                            # number of bands used 
LWAVE = .FALSE.                        # do not overwrite WAVECAR
LCHARG = .FALSE.                       # do not overwrite CHGCAR
LWANNIER90_RUN = .TRUE.                # run wannier90 in library mode

Use the corresponding wannier90.win.XXX file as input for wannier90

cp wannier90.win.XXX wannier90.win

where XXX=PBE, GW0 or HSE and looks similar to

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 

# number of wannier states
num_wann =    3 

# number of bloch bands 
num_bands=   96

# GW energy window for t2g states
dis_win_min = 7.4
dis_win_max = 9.95

begin projections
V:dxy;dxz;dyz
end projections

Use the corresponding WAVECAR.XXX file as imput

cp WAVECAR.XXX WAVECAR

and restart VASP. If all went well, the Vanadium t2g band dispersion thus obtained, may conveniently be visualized with gnuplot:

gnuplot -persist ./wannier90_band.gnu
N.B.: Most modern versions of gnuplot will respond with an error message unless you remove the first line of wannier90_band.gnu (some deprecated syntax issue).

Alternative way to calculate the PBE band structure

VASP allows to interpolate the PBE band structure from the PBE charge density

 cp CHGCAR.DIAG CHGCAR
 cp WAVECAR.DIAG WAVECAR

by adapting the KPOINTS file as follows:

Auto
15
Linemode
reciprocal
0.50000000  0.50000000  0.50000000   !R
0.00000000  0.00000000  0.00000000   !G 

0.00000000  0.00000000  0.00000000   !G
0.50000000  0.00000000  0.00000000   !X

0.50000000  0.00000000  0.00000000   !X
0.50000000  0.50000000  0.00000000   !M 

0.50000000  0.50000000  0.00000000   !M
0.00000000  0.00000000  0.00000000   !G

The following INCAR file tells VASP to interpolate the band structure:

System = SrVO3                         # system name                  
ISMEAR = 0                             # Gaussian smearing 
EDIFF = 1E-7                           # tight convergence criterion
NBANDS = 36                            # 36 bands are sufficient 
LWAVE = .FALSE.                        # do not overwrite WAVECAR
LCHARG = .FALSE.                       # do not overwrite CHGCAR
ICHARG = 11                            # use CHGCAR file for interpolation
LORBIT = 11                            # compute lm-decomposed states
EMIN = -20 ; EMAX = 20                 # smallest/largest energy included in calculation
NEDOS = 1000                           # sampling points for DOS

This PBE band structure and the Wannier-interpolated structures of the PBE, HSE and GW calculation can be compared via

./plotbands.sh

Back to the main page.