Bandstructure and CRPA of SrVO3: Difference between revisions
(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 == | |||
== | === DFT groundstate calculation === | ||
The first step is a conventional DFT (in this case PBE) 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}} = | {{TAGBL|KPAR}} = 2 # parallelization of k-points in two groups | ||
{{TAGBL|EDIFF}} = 1E-8 # high precision for groundstate calculation | |||
{{TAGBL|KPAR}} = 2 | |||
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 | ||
The {{TAG|POSCAR}} file describes the structure of the system: | |||
*{{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. | |||
The {{TAG|KPOINTS}} file describes how the first Brillouin zone is sampled. | |||
In the first step we use a uniform k-point sampling: | |||
*{{TAG|KPOINTS}} (see KPOINTS.BULK) | |||
<pre> | <pre> | ||
Automatically generated mesh | |||
0 | |||
Gamma | |||
4 4 4 | |||
0 0 0 | |||
</pre> | </pre> | ||
Copy the | '''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 KPOINTS.BULK KPOINTS | |||
If all went well, the | and run VASP. If all went well, one should obtain a {{TAG|WAVECAR}} file containing the PBE wavefunction. | ||
=== 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}}): | |||
=== | |||
*{{TAG|INCAR}} (see INCAR.DIAG) | *{{TAG|INCAR}} (see INCAR.DIAG) | ||
{{TAGBL|System}} | {{TAGBL|System}} = SrVO3 # system name | ||
{{TAGBL|ISMEAR}} = 0 # Gaussian smearing | |||
{{TAGBL|KPAR}} = 2 # parallelization of k-points in two groups | |||
{{TAGBL| | {{TAGBL|ALGO}} = Exact # exact diagonalization | ||
{{TAGBL|NELM}} = 1 # one electronic step suffices, since WAVECAR from previous step is present | |||
{{TAGBL|ALGO}} = Exact | |||
{{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 | ||
At this stage it is a good idea to make a safety copy of the {{ | 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 | |||
=== GW Calculation === | |||
The actual GW calculation uses the PBE solution as a basis set: | |||
cp WAVECAR.DIAG {{TAGBL|WAVECAR}} | |||
=== | cp WAVEDER.DIAG {{TAGBL|WAVEDER}} | ||
The | |||
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}} | {{TAGBL|System}} = SrVO3 # system name | ||
{{TAGBL|ISMEAR}} = 0 # Gaussian smearing | |||
{{TAGBL|ISMEAR}} = | {{TAGBL|KPAR}} = 2 # parallelization of k-points in two groups | ||
{{TAGBL| | {{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|ENCUTGW}} = 100 # small energy cutoff for response function suffices for this tutorial | |||
{{TAGBL|NOMEGA}} = 200 # large number of real frequency points for Hilbert transforms of W and self-energy | |||
{{TAGBL|PRECFOCK}} = Fast # | |||
{{TAGBL|ENCUTGW}} = 100 # energy cutoff for response function | |||
{{TAGBL|NOMEGA}} = 200 # | |||
Restarting VASP will overwrite the present {{TAGBL|WAVECAR}} and {{TAGBL|vasprun.xml}} file. Make a copy them for later. | |||
cp {{TAGBL|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 {{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 | |||
Restart VASP and make a copy of the wavefunction for post-processing | |||
cp {{TAGBL|WAVECAR}} WAVECAR.HSE | |||
{{TAGBL| | |||
== 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: | |||
*{{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 | Copy this file to wannier90.win | ||
cp wannier90.win.CRPA wannier90.win | |||
And use following input file as | |||
* | *{{TAG|INCAR}} (see INCAR.CRPA) | ||
{{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 | |||
and run VASP. The CRPA interaction values can be found in the {{TAG|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 {{TAGBL|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 {{TAGBL|WAVECAR}} | |||
cp WAVEDER.DIAG {{TAGBL|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: | |||
*{{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 | |||
Run VASP. Make a copy of the output file | |||
cp {{TAGBL|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 | |||
*{{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 | 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| | === Band structure with <tt>wannier90</tt>=== | ||
The band structure can be calculated via Wannier interpolation using <tt>wannier90</tt> in the library mode | |||
*{{TAG|INCAR}} (see INCAR.WAN) | |||
{{TAGBL|System}} = SrVO3 # system name | |||
{{TAGBL|ISMEAR}} = 0 # Gaussian smearing | |||
{{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|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). | ||
=== 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 | |||
{{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.
- INCAR (see INCAR.DFT)
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:
- KPOINTS (see KPOINTS.BULK)
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):
- INCAR (see INCAR.DIAG)
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:
- INCAR (see INCAR.GW0)
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:
- INCAR (see INCAR.HSE)
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:
- 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
Copy this file to wannier90.win
cp wannier90.win.CRPA wannier90.win
And use following input file as
- INCAR (see INCAR.CRPA)
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:
- INCAR (see INCAR.CRPAR)
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
- INCAR (see INCAR.DOS)
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
- INCAR (see INCAR.WAN)
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:
- 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 INCAR file tells VASP to interpolate the band structure:
- INCAR (see INCAR.BSTR)
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.