Si HSE bandstructure: Difference between revisions

From VASP Wiki
No edit summary
 
(14 intermediate revisions by 3 users not shown)
Line 12: Line 12:
=== Standard self-consistent (SC) run ===
=== Standard self-consistent (SC) run ===


*POSCAR
*{{TAG|POSCAR}}
<pre>
<pre>
system Si
system Si
Line 25: Line 25:
</pre>
</pre>


*INCAR (see INCAR.dft)
*{{TAG|INCAR}} (see INCAR.dft)
<pre>
 
ISMEAR =  0
{{TAGBL|ISMEAR}} =  0
SIGMA  =  0.01
{{TAGBL|SIGMA}} =  0.01
NBANDS = 8
{{TAGBL|NBANDS}} = 8
</pre>


*KPOINTS (see KPOINTS.6)
*{{TAG|KPOINTS}} (see KPOINTS.6)
<pre>
<pre>
6x6x6
6x6x6
Line 41: Line 40:
</pre>
</pre>


=== Non-SC calculation (ICHARG=11) ===
=== Non-SC calculation ({{TAGBL|ICHARG}}=11) ===


Use preconverged CHGCAR file and a suitable KPOINTS file
Use preconverged {{TAG|CHGCAR}} file and a suitable {{TAG|KPOINTS}} file


*INCAR
*{{TAG|INCAR}}
<pre>
ISMEAR =  0
SIGMA  =  0.01
NBANDS = 8


ICHARG=11 #read charge from CHGCAR and keep fixed
{{TAGBL|ISMEAR}} =  0
LORBIT=11
{{TAGBL|SIGMA}}  =  0.01
</pre>
{{TAGBL|NBANDS}} = 8
   
{{TAGBL|ICHARG}} = 11 #read charge from {{TAGBL|CHGCAR}} and keep fixed
{{TAGBL|LORBIT}} = 11


*KPOINTS (see KPOINTS_PBE_bands)
*{{TAG|KPOINTS}} (see KPOINTS_PBE_bands)
  k-points for bandstructure L-G-X-U K-G
  k-points for bandstructure L-G-X-U K-G
   10
   10
Line 84: Line 82:
Just as before
Just as before


*INCAR (see INCAR.dft)
*{{TAG|INCAR}} (see INCAR.dft)
<pre>
{{TAGBL|ISMEAR}} =  0
ISMEAR =  0
{{TAGBL|SIGMA}} =  0.01
SIGMA  =  0.01
{{TAGBL|NBANDS}} = 8
NBANDS = 8
</pre>


*KPOINTS (see KPOINST.6)
*{{TAG|KPOINTS}} (see KPOINST.6)
<pre>
<pre>
6x6x6
6x6x6
Line 102: Line 98:
=== Hybrid calculation using a suitably modified KPOINTS file ===
=== Hybrid calculation using a suitably modified KPOINTS file ===


*INCAR (see INCAR.hse)
*{{TAG|INCAR}} (see INCAR.hse)
<pre>
{{TAGBL|ISMEAR}} =  0
ISMEAR =  0
{{TAGBL|SIGMA}} =  0.01
SIGMA  =  0.01
   
{{TAGBL|LHFCALC}} = .TRUE. ; {{TAGBL|HFSCREEN}} = 0.2 ; {{TAGBL|AEXX}} = 0.25
{{TAGBL|ALGO}} = D ; {{TAGBL|TIME}} = 0.4 ; {{TAGBL|LDIAG}} = .TRUE.
   
{{TAGBL|EDIFF}} = 1.E-6
   
{{TAGBL|NBANDS}} = 8


LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; AEXX = 0.25
*{{TAG|KPOINTS}} (see KPOINTS_HSE_bands.6 and README.txt)
ALGO = D ; TIME = 0.4 ; LDIAG = .TRUE.
 
EDIFF = 1.E-6
 
NBANDS = 8
</pre>
 
*KPOINTS (see KPOINTS_HSE_bands.6 and README.txt)
<pre>
<pre>
Automatically generated mesh
Automatically generated mesh
Line 147: Line 141:
0.00000000 0.50000000 0.50000000 0.000
0.00000000 0.50000000 0.50000000 0.000
</pre>
</pre>
Please note that step two requires a WAVECAR obtained from a standard DFT run (not an HSE calculation),
otherwise the resulting conduction bands often have a zig-zag structure.


=== Plot using p4v ===
=== Plot using p4v ===
Line 155: Line 153:


== Procedure 3: VASP2WANNIER90 (works for DFT, hybrid functionals, and GW)==
== Procedure 3: VASP2WANNIER90 (works for DFT, hybrid functionals, and GW)==
Wannier function interpolation using the VASP2WANNIER90 interface.  
Wannier function interpolation using the VASP2WANNIER90 interface:
Applicable in all cases (here applied for hybrids; for GW see
this procedure is applicable to DFT, hybrid functionals, and GW bandstructure calculations.
[[Bandstructure of Si in GW (VASP2WANNIER90)]] and [[bandstructure of SrVO3 in GW]] examples).  
Here we apply it for a hybrid functional.
For GW see the [[Bandstructure of Si in GW (VASP2WANNIER90)]] and [[bandstructure of SrVO3 in GW]] examples.
 
To see a summary of the workflow below, have a look at the <tt>HSE_bandstructure_with_wannier90.sh</tt>.


=== Standard DFT run ===
=== Standard DFT run ===
*INCAR
Just as before
<pre>
## Default     
ISMEAR =  0
SIGMA  =  0.01
GGA    = PE


## HSE
*{{TAG|INCAR}} (see INCAR.dft)
#LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; AEXX = 0.25
{{TAGBL|ISMEAR}} = 0
#ALGO = D ; TIME = 0.4 ; LDIAG = .TRUE.
{{TAGBL|SIGMA}}  = 0.01
{{TAGBL|NBANDS}} = 8


##VASP2WANNIER
*{{TAG|KPOINTS}} (see KPOINST.6)
#LWANNIER90=.TRUE.
</pre>
 
*KPOINTS
<pre>
<pre>
Automatically generated mesh
6x6x6
  0
  0
G
G
  4 4 4
  6 6 6
  0 0 0
  0 0 0
</pre>
</pre>


=== HSE + LWANNIER90 run ===
=== Increase the number of states to 24 ===
This step is optional.


*INCAR
*{{TAG|INCAR}} (see INCAR.diag)
<pre>
{{TAGBL|ISMEAR}} =  0
## Default     
{{TAGBL|SIGMA}} =  0.01
ISMEAR =  0
     
SIGMA  =  0.01
{{TAGBL|ALGO}} = Exact
GGA    = PE
{{TAGBL|NELM}} = 1
     
{{TAGBL|NBANDS}} = 24


## HSE
=== HSE + LWANNIER90 run ===
LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; AEXX = 0.25
Run the hybrid functional calculation and call <tt>wannier90</tt> (see [[LWANNIER90_RUN]]).
ALGO = D ; TIME = 0.4 ; LDIAG = .TRUE.
.


##VASP2WANNIER
*{{TAG|INCAR}} (see INCAR.hse_with_wannier90)
LWANNIER90=.TRUE.
{{TAGBL|ISMEAR}} =  0
</pre>
{{TAGBL|SIGMA}}  =  0.01
     
{{TAGBL|LHFCALC}} = .TRUE. ; {{TAGBL|HFSCREEN}} = 0.2 ; {{TAGBL|AEXX}} = 0.25
{{TAGBL|ALGO}} = D ; {{TAGBL|TIME}} = 0.4 ; {{TAGBL|LDIAG}} = .TRUE.
{{TAGBL|NKRED}} = 2
   
{{TAGBL|EDIFF}} = 1.E-6
   
{{TAGBL|NBANDS}} = 24
   
{{TAGBL|LWANNIER90_RUN}} = .TRUE.


Use the wannier90.win file given below which contains all instructions needed to generate the necessary input files
You will have to provide some instructions for <tt>wannier90</tt> as well:
for the WANNIER90 runs (wannier90.amn, wannier90.mmn, wannier90.eig).


'''Mind''': If the wannier90.win file does not exist VASP will create a default wannier90.win compatible with
*wannier90.win (see wannier90.win_start)
the POSCAR and INCAR files, which needs to be suitably modified by including the proper instruction required
to generate the maximally localized wannier functions (refer to the [http://www.wannier.org/doc/user_guide.pdf WANNIER90 manual]).
 
*wannier90.win
<pre>
<pre>
num_wann=8
num_wann=18
num_bands=8
num_bands=24


Begin Projections
Begin Projections
Si:sp3
Si:s ; p ; d
End Projections
End Projections


dis_froz_max=9
#dis_froz_max=9
dis_num_iter=1000
dis_num_iter=100


guiding_centres=true
#guiding_centres=true


#restart        =  plot
bands_plot      =  true
#bands_plot      =  true
begin kpoint_path
#begin kpoint_path
L 0.50000  0.50000 0.5000 G 0.00000  0.00000 0.0000
#L 0.50000  0.50000 0.5000 G 0.00000  0.00000 0.0000
G 0.00000  0.00000 0.0000 X 0.50000  0.00000 0.5000
#G 0.00000  0.00000 0.0000 X 0.50000  0.00000 0.5000
X 0.50000  0.00000 0.5000 K 0.37500 -0.37500 0.0000
#X 0.50000  0.00000 0.5000 K 0.37500 -0.37500 0.0000
K 0.37500 -0.37500 0.0000 G 0.00000  0.00000 0.0000
#K 0.37500 -0.37500 0.0000 G 0.00000  0.00000 0.0000
end kpoint_path
#end kpoint_path
bands_num_points 40
#bands_num_points 40
bands_plot_format gnuplot xmgrace
#bands_plot_format gnuplot xmgrace
 
begin unit_cell_cart
    2.7150000    2.7150000    0.0000000
    0.0000000    2.7150000    2.7150000
    2.7150000    0.0000000    2.7150000
end unit_cell_cart
 
begin atoms_cart
Si      0.0000000    0.0000000    0.0000000
Si      1.3575000    1.3575000    1.3575000
end atoms_cart
 
mp_grid =    4    4    4
 
begin kpoints
    0.0000000    0.0000000    0.0000000
    0.2500000    0.0000000    0.0000000
    0.5000000    0.0000000    0.0000000
    0.2500000    0.2500000    0.0000000
    0.5000000    0.2500000    0.0000000
    -0.2500000    0.2500000    0.0000000
    0.5000000    0.5000000    0.0000000
    -0.2500000    0.5000000    0.2500000
    0.0000000    0.2500000    0.0000000
    0.0000000    0.0000000    0.2500000
    -0.2500000    -0.2500000    -0.2500000
    -0.2500000    0.0000000    0.0000000
    0.0000000    -0.2500000    0.0000000
    0.0000000    0.0000000    -0.2500000
    0.2500000    0.2500000    0.2500000
    0.0000000    0.5000000    0.0000000
    0.0000000    0.0000000    0.5000000
    -0.5000000    -0.5000000    -0.5000000
    0.0000000    0.2500000    0.2500000
    0.2500000    0.0000000    0.2500000
    -0.2500000    -0.2500000    0.0000000
    -0.2500000    0.0000000    -0.2500000
    0.0000000    -0.2500000    -0.2500000
    0.0000000    0.5000000    0.2500000
    0.2500000    0.0000000    0.5000000
    -0.2500000    -0.2500000    0.2500000
    -0.5000000    -0.2500000    -0.5000000
    0.2500000    0.5000000    0.0000000
    0.2500000    -0.2500000    -0.2500000
    -0.5000000    -0.5000000    -0.2500000
    0.0000000    0.2500000    0.5000000
    -0.2500000    0.2500000    -0.2500000
    -0.2500000    -0.5000000    -0.5000000
    0.5000000    0.0000000    0.2500000
    -0.5000000    -0.2500000    0.0000000
    0.0000000    -0.5000000    -0.2500000
    -0.2500000    0.0000000    -0.5000000
    0.2500000    0.2500000    -0.2500000
    0.5000000    0.2500000    0.5000000
    -0.2500000    -0.5000000    0.0000000
    -0.2500000    0.2500000    0.2500000
    0.5000000    0.5000000    0.2500000
    0.0000000    -0.2500000    -0.5000000
    0.2500000    -0.2500000    0.2500000
    0.2500000    0.5000000    0.5000000
    -0.5000000    0.0000000    -0.2500000
    0.0000000    -0.2500000    0.2500000
    0.2500000    0.0000000    -0.2500000
    -0.2500000    -0.2500000    -0.5000000
    0.2500000    0.5000000    0.2500000
    0.2500000    -0.2500000    0.0000000
    -0.5000000    -0.2500000    -0.2500000
    0.2500000    0.2500000    0.5000000
    0.0000000    0.2500000    -0.2500000
    -0.2500000    -0.5000000    -0.2500000
    0.5000000    0.2500000    0.2500000
    -0.2500000    0.0000000    0.2500000
    0.0000000    0.5000000    0.5000000
    0.5000000    0.0000000    0.5000000
    0.2500000    -0.2500000    0.5000000
    0.5000000    0.2500000    -0.2500000
    -0.5000000    -0.2500000    -0.7500000
    0.2500000    -0.5000000    -0.2500000
    -0.2500000    0.2500000    -0.5000000
end kpoints
</pre>
</pre>


=== Compute Wannier functions ===


run wannier90:
'''Mind''': If the wannier90.win file does not exist VASP will create a default wannier90.win compatible with
 
the POSCAR and INCAR files, which needs to be suitably modified by including the proper instruction required  
wannier90.x wannier90
to generate the maximally localized wannier functions (refer to the [http://www.wannier.org/doc/user_guide.pdf WANNIER90 manual]).
 
This run generates the wannier90 standard output (wannier90.wout)
and the file wannier90.chk needed for the wannier interpolation (next step)
=== Obtain bandstructure (Wannier interpolation) and plot using XMGRACE or GNUPLOT===
 
Uncomment the bandstructure plot flags in wannier90.win and rerun (restart) wannier90:
 
wannier90.x wannier90
 
This run generates the following bandstructure files which can be visualized using xmgrace or gnuplot:
 
wannier90_band.agr
 
wannier90_band.dat
 
wannier90_band.gnu
 
 
*README.txt
<pre>
Bandstructure plot in VASP (Three different ways)
 
1) Standard way: PBE (Fcc Si bandstructure example).
  1.1  Standard self-consistent (SC) run
  1.2  non-SC calculation (ICHARG=11) using preconverged CHGCAR file and KPOINTS_PBE_bands
  1.3  Plot using p4v
 
2) Fake SC procedure: PBE & HSE
  2.1 Standard self-consistent (SC) run
  2.2 Additional SC-run using KPOINTS_HSE_bands
  2.3 Plot using p4v
 
----
The file KPOINTS_HSE_bands is constructed by copying the IBZKPT file from run 2.1 to the KPOINTS file:
 
IBZKPT
Automatically generated mesh
      8
Reciprocal lattice
    0.00000000000000    0.00000000000000    0.00000000000000            1
    0.25000000000000    0.00000000000000    0.00000000000000            8
    0.50000000000000    0.00000000000000    0.00000000000000            4
    0.25000000000000    0.25000000000000    0.00000000000000            6
    0.50000000000000    0.25000000000000    0.00000000000000            24
  -0.25000000000000    0.25000000000000    0.00000000000000            12
    0.50000000000000    0.50000000000000    0.00000000000000            3
  -0.25000000000000    0.50000000000000    0.25000000000000            6
 
Then add the desired additional k-points with zero weight and change the total number of k-points
 
Explicit k-points list
      18 <--- CHANGE TOTAL NUMBER OF K-POINTS !!
Reciprocal lattice
    0.00000000000000    0.00000000000000    0.00000000000000            1
    0.25000000000000    0.00000000000000    0.00000000000000            8
    0.50000000000000    0.00000000000000    0.00000000000000            4
    0.25000000000000    0.25000000000000    0.00000000000000            6
    0.50000000000000    0.25000000000000    0.00000000000000            24
  -0.25000000000000    0.25000000000000    0.00000000000000            12
    0.50000000000000    0.50000000000000    0.00000000000000            3
  -0.25000000000000    0.50000000000000    0.25000000000000            6
0.00000000 0.00000000 0.00000000 0.000 <--- ZERO WEIGHT !!
0.00000000 0.05555556 0.05555556 0.000
0.00000000 0.11111111 0.11111111 0.000
0.00000000 0.16666667 0.16666667 0.000
0.00000000 0.22222222 0.22222222 0.000
0.00000000 0.27777778 0.27777778 0.000
0.00000000 0.33333333 0.33333333 0.000
0.00000000 0.38888889 0.38888889 0.000
0.00000000 0.44444444 0.44444444 0.000
0.00000000 0.50000000 0.50000000 0.000
----
 
3) VASP2WANNIER90: PBE, HSE & GW
  3.1 Standard SC run using the existing wannier.win file 
  3.2 run wannier90 (wannier90.x wannier90) to generate MLWFs
  3.3 uncomment bandstructure plot flags in wannier90.win and restart wannier90
 
----
If the wannier90.win file does not exist VASP will create a default wannier90.win compatible with
the POSCAR and INCAR, which need to be suitably modify by including the proper instruction required  
to generate the MLWFs (refer to the wannier90 manual):
 
default wannier90.win
num_wann =    8  ! set to NBANDS by VASP


use_bloch_phases = .T.
=== Plot bandstructure (Wannier interpolation) using XMGRACE or GNUPLOT===


begin unit_cell_cart
If all went well, <tt>wannier90</tt> will have generated the following bandstructure files which can be visualized using xmgrace or gnuplot:
    2.7150000    2.7150000    0.0000000
    0.0000000    2.7150000    2.7150000
    2.7150000    0.0000000    2.7150000
end unit_cell_cart


begin atoms_cart
*wannier90_band.agr
Si      0.0000000    0.0000000    0.0000000
xmgrace ./wannier90_band.agr
Si      1.3575000    1.3575000    1.3575000
end atoms_cart


mp_grid =    4    4    4
*wannier90_band.dat


begin kpoints
*wannier90_band.gnu
    0.0000000    0.0000000    0.0000000
gnuplot -persist ./wannier90_band.gnu
    0.2500000    0.0000000    0.0000000
    0.5000000    0.0000000    0.0000000
    0.2500000    0.2500000    0.0000000
    0.5000000    0.2500000    0.0000000
    -0.2500000    0.2500000    0.0000000
    0.5000000    0.5000000    0.0000000
    -0.2500000    0.5000000    0.2500000
    0.0000000    0.2500000    0.0000000
    0.0000000    0.0000000    0.2500000
    -0.2500000    -0.2500000    -0.2500000
    -0.2500000    0.0000000    0.0000000
    0.0000000    -0.2500000    0.0000000
    0.0000000    0.0000000    -0.2500000
    0.2500000    0.2500000    0.2500000
    0.0000000    0.5000000    0.0000000
    0.0000000    0.0000000    0.5000000
    -0.5000000    -0.5000000    -0.5000000
    0.0000000    0.2500000    0.2500000
    0.2500000    0.0000000    0.2500000
    -0.2500000    -0.2500000    0.0000000
    -0.2500000    0.0000000    -0.2500000
    0.0000000    -0.2500000    -0.2500000
    0.0000000    0.5000000    0.2500000
    0.2500000    0.0000000    0.5000000
    -0.2500000    -0.2500000    0.2500000
    -0.5000000    -0.2500000    -0.5000000
    0.2500000    0.5000000    0.0000000
    0.2500000    -0.2500000    -0.2500000
    -0.5000000    -0.5000000    -0.2500000
    0.0000000    0.2500000    0.5000000
    -0.2500000    0.2500000    -0.2500000
    -0.2500000    -0.5000000    -0.5000000
    0.5000000    0.0000000    0.2500000
    -0.5000000    -0.2500000    0.0000000
    0.0000000    -0.5000000    -0.2500000
    -0.2500000    0.0000000    -0.5000000
    0.2500000    0.2500000    -0.2500000
    0.5000000    0.2500000    0.5000000
    -0.2500000    -0.5000000    0.0000000
    -0.2500000    0.2500000    0.2500000
    0.5000000    0.5000000    0.2500000
    0.0000000    -0.2500000    -0.5000000
    0.2500000    -0.2500000    0.2500000
    0.2500000    0.5000000    0.5000000
    -0.5000000    0.0000000    -0.2500000
    0.0000000    -0.2500000    0.2500000
    0.2500000    0.0000000    -0.2500000
    -0.2500000    -0.2500000    -0.5000000
    0.2500000    0.5000000    0.2500000
    0.2500000    -0.2500000    0.0000000
    -0.5000000    -0.2500000    -0.2500000
    0.2500000    0.2500000    0.5000000
    0.0000000    0.2500000    -0.2500000
    -0.2500000    -0.5000000    -0.2500000
    0.5000000    0.2500000    0.2500000
    -0.2500000    0.0000000    0.2500000
    0.0000000    0.5000000    0.5000000
    0.5000000    0.0000000    0.5000000
    0.2500000    -0.2500000    0.5000000
    0.5000000    0.2500000    -0.2500000
    -0.5000000    -0.2500000    -0.7500000
    0.2500000    -0.5000000    -0.2500000
    -0.2500000    0.2500000    -0.5000000
end kpoints
----


</pre>
:'''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).
 
Wannier90 Manual: [http://www.wannier.org/doc/user_guide.pdf WANNIER90 manual]
 
LWANNIER90 in the VASP Manual: [[LWANNIER90|LWANNIER90]].


== Download ==
== Download ==
[http://www.vasp.at/vasp-workshop/examples/Si_HSE_band.tgz Si_HSE_band.tgz]
[[Media:Si_HSE_band.tgz| Si_HSE_band.tgz]]
 
----
----
[[VASP_example_calculations|To the list of examples]] or to the [[The_VASP_Manual|main page]]


[[Category:Examples]]
[[Category:Examples]]

Latest revision as of 14:18, 14 November 2019

Description: Bandstructure for Si within DFT+HF

Bandstructure in VASP can be obtained following three different procedures. The standard procedure (procedure 1),

applicable at PBE level, is also described in Fcc Si bandstructure example.

Within Hybrid functional theory it is possible to plot bandstructure using procedure 2 or 3.

Procedure 1: Standard procedure (suitable for DFT calculations)

Only possible within DFT. Described in Fcc Si bandstructure example:

Standard self-consistent (SC) run

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
ISMEAR =  0
SIGMA  =  0.01
NBANDS = 8
6x6x6
 0
G
 6 6 6
 0 0 0

Non-SC calculation (ICHARG=11)

Use preconverged CHGCAR file and a suitable KPOINTS file

ISMEAR =  0
SIGMA  =  0.01
NBANDS = 8
    
ICHARG = 11 #read charge from CHGCAR and keep fixed
LORBIT = 11
k-points for bandstructure L-G-X-U K-G
 10
line
reciprocal
  0.50000  0.50000  0.50000    1
  0.00000  0.00000  0.00000    1

  0.00000  0.00000  0.00000    1
  0.00000  0.50000  0.50000    1

  0.00000  0.50000  0.50000    1
  0.25000  0.62500  0.62500    1

  0.37500  0.7500   0.37500    1
  0.00000  0.00000  0.00000    1

Plot using p4v

P4VASP: p4v

Procedure 2: 0-weight (Fake) SC procedure (works DFT & hybrid functionals)

This procedure can be applied to compute bandstructure at hybrid functionals and DFT level (see the HSE_bandstructure.sh script).

Standard DFT run

Just as before

ISMEAR =  0
SIGMA  =  0.01
NBANDS = 8
6x6x6
 0
G
 6 6 6
 0 0 0

Hybrid calculation using a suitably modified KPOINTS file

ISMEAR =  0
SIGMA  =  0.01
    
LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; AEXX = 0.25
ALGO = D ; TIME = 0.4 ; LDIAG = .TRUE. 
    
EDIFF = 1.E-6
    
NBANDS = 8
  • KPOINTS (see KPOINTS_HSE_bands.6 and README.txt)
Automatically generated mesh
      26
Reciprocal lattice
    0.00000000000000    0.00000000000000    0.00000000000000             1
    0.16666666666667    0.00000000000000    0.00000000000000             8
    0.33333333333333    0.00000000000000    0.00000000000000             8
    0.50000000000000    0.00000000000000    0.00000000000000             4
    0.16666666666667    0.16666666666667    0.00000000000000             6
    0.33333333333333    0.16666666666667    0.00000000000000            24
    0.50000000000000    0.16666666666667    0.00000000000000            24
   -0.33333333333333    0.16666666666667    0.00000000000000            24
   -0.16666666666667    0.16666666666667    0.00000000000000            12
    0.33333333333333    0.33333333333333    0.00000000000000             6
    0.50000000000000    0.33333333333333    0.00000000000000            24
   -0.33333333333333    0.33333333333333    0.00000000000000            12
    0.50000000000000    0.50000000000000    0.00000000000000             3
    0.50000000000000    0.33333333333333    0.16666666666667            24
   -0.33333333333333    0.33333333333333    0.16666666666667            24
   -0.33333333333333    0.50000000000000    0.16666666666667            12
0.00000000 0.00000000 0.00000000 0.000
0.00000000 0.05555556 0.05555556 0.000
0.00000000 0.11111111 0.11111111 0.000
0.00000000 0.16666667 0.16666667 0.000
0.00000000 0.22222222 0.22222222 0.000
0.00000000 0.27777778 0.27777778 0.000
0.00000000 0.33333333 0.33333333 0.000
0.00000000 0.38888889 0.38888889 0.000
0.00000000 0.44444444 0.44444444 0.000
0.00000000 0.50000000 0.50000000 0.000

Please note that step two requires a WAVECAR obtained from a standard DFT run (not an HSE calculation), otherwise the resulting conduction bands often have a zig-zag structure.


Plot using p4v

P4VASP: p4v

Mind: Zoom in on the right-side part of the bandstructure plot.

Procedure 3: VASP2WANNIER90 (works for DFT, hybrid functionals, and GW)

Wannier function interpolation using the VASP2WANNIER90 interface: this procedure is applicable to DFT, hybrid functionals, and GW bandstructure calculations. Here we apply it for a hybrid functional. For GW see the Bandstructure of Si in GW (VASP2WANNIER90) and bandstructure of SrVO3 in GW examples.

To see a summary of the workflow below, have a look at the HSE_bandstructure_with_wannier90.sh.

Standard DFT run

Just as before

ISMEAR =  0
SIGMA  =  0.01
NBANDS = 8
6x6x6
 0
G
 6 6 6
 0 0 0

Increase the number of states to 24

This step is optional.

ISMEAR =  0
SIGMA  =  0.01
     
ALGO = Exact
NELM = 1
     
NBANDS = 24

HSE + LWANNIER90 run

Run the hybrid functional calculation and call wannier90 (see LWANNIER90_RUN). .

  • INCAR (see INCAR.hse_with_wannier90)
ISMEAR =  0
SIGMA  =  0.01
     
LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; AEXX = 0.25
ALGO = D ; TIME = 0.4 ; LDIAG = .TRUE. 
NKRED = 2
    
EDIFF = 1.E-6
    
NBANDS = 24
    
LWANNIER90_RUN = .TRUE.

You will have to provide some instructions for wannier90 as well:

  • wannier90.win (see wannier90.win_start)
num_wann=18
num_bands=24

Begin Projections
Si:s ; p ; d
End Projections

#dis_froz_max=9
dis_num_iter=100

#guiding_centres=true

bands_plot      =  true
begin kpoint_path
L 0.50000  0.50000 0.5000 G 0.00000  0.00000 0.0000
G 0.00000  0.00000 0.0000 X 0.50000  0.00000 0.5000
X 0.50000  0.00000 0.5000 K 0.37500 -0.37500 0.0000
K 0.37500 -0.37500 0.0000 G 0.00000  0.00000 0.0000
end kpoint_path
bands_num_points 40
bands_plot_format gnuplot xmgrace


Mind: If the wannier90.win file does not exist VASP will create a default wannier90.win compatible with the POSCAR and INCAR files, which needs to be suitably modified by including the proper instruction required to generate the maximally localized wannier functions (refer to the WANNIER90 manual).

Plot bandstructure (Wannier interpolation) using XMGRACE or GNUPLOT

If all went well, wannier90 will have generated the following bandstructure files which can be visualized using xmgrace or gnuplot:

  • wannier90_band.agr
xmgrace ./wannier90_band.agr
  • wannier90_band.dat
  • wannier90_band.gnu
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).

Download

Si_HSE_band.tgz