Wanniernization using Quantum ESPRESSO

SCF calculation of Quantum ESPRESSO

scf_srvo3.in

&CONTROL
 calculation = 'scf'
      outdir = './'
  pseudo_dir = './'
      prefix = 'srvo3'
/
&SYSTEM
       ibrav = 1
   celldm(1) = 7.29738
        ntyp = 3
         nat = 5
     ecutwfc = 50.0
     ecutrho = 400.0
 occupations = "tetrahedra_opt"
/
&ELECTRONS
/
ATOMIC_SPECIES
 Sr   87.6200000000  Sr.pbe-spn-kjpaw_psl.0.2.3.upf
  V   50.9415000000  V.pbe-spn-kjpaw_psl.0.2.3.upf
  O   15.9994000000  O.pbe-n-kjpaw_psl.0.1.upf
ATOMIC_POSITIONS crystal
 Sr   0.00000000000000   0.00000000000000   0.00000000000000
  V   0.50000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.00000000000000   0.50000000000000
  O   0.00000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.50000000000000   0.00000000000000
K_POINTS automatic
 8 8 8 0 0 0

The pseudopotentials are downloaded from Sr.pbe-spn-kjpaw_psl.0.2.3.upf, V.pbe-spn-kjpaw_psl.0.2.3.upf, and O.pbe-n-kjpaw_psl.0.1.upf.

$ mpirun -np 4 pw.x -in scf_srvo3.in

Wannierization

Generate Bloch orbitals for the Wannier

Perform non-scf calculation for generating Bloch orbitals that are used in the wannierization.

nscf_srvo3.in

&CONTROL
 calculation = 'bands'
      outdir = './'
  pseudo_dir = './'
      prefix = 'srvo3'
/
&SYSTEM
       ibrav = 1
   celldm(1) = 7.29738129774137562
        ntyp = 3
         nat = 5
     ecutwfc = 50.0
     ecutrho = 400.0
 occupations = "tetrahedra_opt"
/
&ELECTRONS
/
ATOMIC_SPECIES
 Sr   87.6200000000  Sr.pbe-spn-kjpaw_psl.0.2.3.upf
  V   50.9415000000  V.pbe-spn-kjpaw_psl.0.2.3.upf
  O   15.9994000000  O.pbe-n-kjpaw_psl.0.1.upf
ATOMIC_POSITIONS crystal
 Sr   0.00000000000000   0.00000000000000   0.00000000000000
  V   0.50000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.00000000000000   0.50000000000000
  O   0.00000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.50000000000000   0.00000000000000
K_POINTS crystal
64
  0.00000000  0.00000000  0.00000000  1.562500e-02
  0.00000000  0.00000000  0.25000000  1.562500e-02
  0.00000000  0.00000000  0.50000000  1.562500e-02
  0.00000000  0.00000000  0.75000000  1.562500e-02
  0.00000000  0.25000000  0.00000000  1.562500e-02
  0.00000000  0.25000000  0.25000000  1.562500e-02
  0.00000000  0.25000000  0.50000000  1.562500e-02
  0.00000000  0.25000000  0.75000000  1.562500e-02
  0.00000000  0.50000000  0.00000000  1.562500e-02
  0.00000000  0.50000000  0.25000000  1.562500e-02
  0.00000000  0.50000000  0.50000000  1.562500e-02
  0.00000000  0.50000000  0.75000000  1.562500e-02
  0.00000000  0.75000000  0.00000000  1.562500e-02
  0.00000000  0.75000000  0.25000000  1.562500e-02
  0.00000000  0.75000000  0.50000000  1.562500e-02
  0.00000000  0.75000000  0.75000000  1.562500e-02
  0.25000000  0.00000000  0.00000000  1.562500e-02
  0.25000000  0.00000000  0.25000000  1.562500e-02
  0.25000000  0.00000000  0.50000000  1.562500e-02
  0.25000000  0.00000000  0.75000000  1.562500e-02
  0.25000000  0.25000000  0.00000000  1.562500e-02
  0.25000000  0.25000000  0.25000000  1.562500e-02
  0.25000000  0.25000000  0.50000000  1.562500e-02
  0.25000000  0.25000000  0.75000000  1.562500e-02
  0.25000000  0.50000000  0.00000000  1.562500e-02
  0.25000000  0.50000000  0.25000000  1.562500e-02
  0.25000000  0.50000000  0.50000000  1.562500e-02
  0.25000000  0.50000000  0.75000000  1.562500e-02
  0.25000000  0.75000000  0.00000000  1.562500e-02
  0.25000000  0.75000000  0.25000000  1.562500e-02
  0.25000000  0.75000000  0.50000000  1.562500e-02
  0.25000000  0.75000000  0.75000000  1.562500e-02
  0.50000000  0.00000000  0.00000000  1.562500e-02
  0.50000000  0.00000000  0.25000000  1.562500e-02
  0.50000000  0.00000000  0.50000000  1.562500e-02
  0.50000000  0.00000000  0.75000000  1.562500e-02
  0.50000000  0.25000000  0.00000000  1.562500e-02
  0.50000000  0.25000000  0.25000000  1.562500e-02
  0.50000000  0.25000000  0.50000000  1.562500e-02
  0.50000000  0.25000000  0.75000000  1.562500e-02
  0.50000000  0.50000000  0.00000000  1.562500e-02
  0.50000000  0.50000000  0.25000000  1.562500e-02
  0.50000000  0.50000000  0.50000000  1.562500e-02
  0.50000000  0.50000000  0.75000000  1.562500e-02
  0.50000000  0.75000000  0.00000000  1.562500e-02
  0.50000000  0.75000000  0.25000000  1.562500e-02
  0.50000000  0.75000000  0.50000000  1.562500e-02
  0.50000000  0.75000000  0.75000000  1.562500e-02
  0.75000000  0.00000000  0.00000000  1.562500e-02
  0.75000000  0.00000000  0.25000000  1.562500e-02
  0.75000000  0.00000000  0.50000000  1.562500e-02
  0.75000000  0.00000000  0.75000000  1.562500e-02
  0.75000000  0.25000000  0.00000000  1.562500e-02
  0.75000000  0.25000000  0.25000000  1.562500e-02
  0.75000000  0.25000000  0.50000000  1.562500e-02
  0.75000000  0.25000000  0.75000000  1.562500e-02
  0.75000000  0.50000000  0.00000000  1.562500e-02
  0.75000000  0.50000000  0.25000000  1.562500e-02
  0.75000000  0.50000000  0.50000000  1.562500e-02
  0.75000000  0.50000000  0.75000000  1.562500e-02
  0.75000000  0.75000000  0.00000000  1.562500e-02
  0.75000000  0.75000000  0.25000000  1.562500e-02
  0.75000000  0.75000000  0.50000000  1.562500e-02
  0.75000000  0.75000000  0.75000000  1.562500e-02

This k-grid is generated as follows:

$ kmesh.pl 4 4 4

where kmesh.pl is located in the utility/ directory of Wannier90.

Then, run pw.x as

$ mpirun -np 4 pw.x -in nscf_srvo3.in

Pre-process for Wannier90

Pre-process with wannier90 program. It is always required before pw2wannier.x runs.

srvo3.win

num_bands         =   25
num_wann          =   3

dis_win_max =  18.0
dis_win_min =  11.0
!dis_froz_max = 13.4
!dis_froz_min = 11.0

begin projections
V:dxy;dxz;dyz
end projections

site_symmetry = .true.
write_hr = .true.
bands_plot = .true.
wannier_plot = .true.
write_xyz = .true.

wannier_plot_supercell = 1

!exclude_bands=

begin kpoint_path
G  0.0  0.0  0.0  X  0.5  0.0  0.0
X  0.5  0.0  0.0  M  0.5  0.5  0.0
M  0.5  0.5  0.0  G  0.0  0.0  0.0
G  0.0  0.0  0.0  R  0.5  0.5  0.5
end kpoint_path

begin unit_cell_cart
bohr
7.29738  0.00000  0.00000
0.00000  7.29738  0.00000
0.00000  0.00000  7.29738
end unit_cell_cart

begin atoms_frac
 Sr   0.00000000000000   0.00000000000000   0.00000000000000
  V   0.50000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.00000000000000   0.50000000000000
  O   0.00000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.50000000000000   0.00000000000000
end atoms_frac

mp_grid           = 4 4 4

begin kpoints
  0.00000000  0.00000000  0.00000000
  0.00000000  0.00000000  0.25000000
  0.00000000  0.00000000  0.50000000
  0.00000000  0.00000000  0.75000000
  0.00000000  0.25000000  0.00000000
  0.00000000  0.25000000  0.25000000
  0.00000000  0.25000000  0.50000000
  0.00000000  0.25000000  0.75000000
  0.00000000  0.50000000  0.00000000
  0.00000000  0.50000000  0.25000000
  0.00000000  0.50000000  0.50000000
  0.00000000  0.50000000  0.75000000
  0.00000000  0.75000000  0.00000000
  0.00000000  0.75000000  0.25000000
  0.00000000  0.75000000  0.50000000
  0.00000000  0.75000000  0.75000000
  0.25000000  0.00000000  0.00000000
  0.25000000  0.00000000  0.25000000
  0.25000000  0.00000000  0.50000000
  0.25000000  0.00000000  0.75000000
  0.25000000  0.25000000  0.00000000
  0.25000000  0.25000000  0.25000000
  0.25000000  0.25000000  0.50000000
  0.25000000  0.25000000  0.75000000
  0.25000000  0.50000000  0.00000000
  0.25000000  0.50000000  0.25000000
  0.25000000  0.50000000  0.50000000
  0.25000000  0.50000000  0.75000000
  0.25000000  0.75000000  0.00000000
  0.25000000  0.75000000  0.25000000
  0.25000000  0.75000000  0.50000000
  0.25000000  0.75000000  0.75000000
  0.50000000  0.00000000  0.00000000
  0.50000000  0.00000000  0.25000000
  0.50000000  0.00000000  0.50000000
  0.50000000  0.00000000  0.75000000
  0.50000000  0.25000000  0.00000000
  0.50000000  0.25000000  0.25000000
  0.50000000  0.25000000  0.50000000
  0.50000000  0.25000000  0.75000000
  0.50000000  0.50000000  0.00000000
  0.50000000  0.50000000  0.25000000
  0.50000000  0.50000000  0.50000000
  0.50000000  0.50000000  0.75000000
  0.50000000  0.75000000  0.00000000
  0.50000000  0.75000000  0.25000000
  0.50000000  0.75000000  0.50000000
  0.50000000  0.75000000  0.75000000
  0.75000000  0.00000000  0.00000000
  0.75000000  0.00000000  0.25000000
  0.75000000  0.00000000  0.50000000
  0.75000000  0.00000000  0.75000000
  0.75000000  0.25000000  0.00000000
  0.75000000  0.25000000  0.25000000
  0.75000000  0.25000000  0.50000000
  0.75000000  0.25000000  0.75000000
  0.75000000  0.50000000  0.00000000
  0.75000000  0.50000000  0.25000000
  0.75000000  0.50000000  0.50000000
  0.75000000  0.50000000  0.75000000
  0.75000000  0.75000000  0.00000000
  0.75000000  0.75000000  0.25000000
  0.75000000  0.75000000  0.50000000
  0.75000000  0.75000000  0.75000000
end kpoints

This k grid is generated as follows:

$ kmesh.pl 4 4 4 wan
$ wannier90.x -pp srvo3

QE to wannier90 interface

pw2wan_srvo3.in

&inputpp 
   outdir = './'
   prefix = 'srvo3'
   seedname = 'srvo3'
   spin_component = 'none'
   write_mmn = .true.
   write_amn = .true.
   write_unk = .true.
   write_dmn = .true.
   wan_mode = 'standalone'
/
$ mpirun -np 4 pw2wan.x -in pw2wan_srvo3.in

Wannier90

Execute wannier90.x for the actual wannierization. The input file is the same as that for the pre-processing run.

$ wannier90.x srvo3

(Optional) Check wannierization

If you want to check the quality of the wannierization, you can plot the original and the wannier-interpolated band structure simultaneously.

First, compute the band structure with the following input file:

band_srvo3.in

&CONTROL
 calculation = 'bands'
      outdir = './'
  pseudo_dir = './'
      prefix = 'srvo3'
/
&SYSTEM
       ibrav = 1
   celldm(1) = 7.29738129774137562
        ntyp = 3
         nat = 5
     ecutwfc = 50.0
     ecutrho = 400.0
 occupations = "tetrahedra_opt"
/
&ELECTRONS
/
ATOMIC_SPECIES
 Sr   87.6200000000  Sr.pbe-spn-kjpaw_psl.0.2.3.upf
  V   50.9415000000  V.pbe-spn-kjpaw_psl.0.2.3.upf
  O   15.9994000000  O.pbe-n-kjpaw_psl.0.1.upf
ATOMIC_POSITIONS crystal
 Sr   0.00000000000000   0.00000000000000   0.00000000000000
  V   0.50000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.00000000000000   0.50000000000000
  O   0.00000000000000   0.50000000000000   0.50000000000000
  O   0.50000000000000   0.50000000000000   0.00000000000000
K_POINTS crystal
          50
        0.0000000000    0.0000000000    0.0000000000    1.0
        0.0500000000    0.0000000000    0.0000000000    1.0
        0.1000000000    0.0000000000    0.0000000000    1.0
        0.1500000000    0.0000000000    0.0000000000    1.0
        0.2000000000    0.0000000000    0.0000000000    1.0
        0.2500000000    0.0000000000    0.0000000000    1.0
        0.3000000000    0.0000000000    0.0000000000    1.0
        0.3500000000    0.0000000000    0.0000000000    1.0
        0.4000000000    0.0000000000    0.0000000000    1.0
        0.4500000000    0.0000000000    0.0000000000    1.0
        0.5000000000    0.0000000000    0.0000000000    1.0
        0.5000000000    0.0500000000    0.0000000000    1.0
        0.5000000000    0.1000000000    0.0000000000    1.0
        0.5000000000    0.1500000000    0.0000000000    1.0
        0.5000000000    0.2000000000    0.0000000000    1.0
        0.5000000000    0.2500000000    0.0000000000    1.0
        0.5000000000    0.3000000000    0.0000000000    1.0
        0.5000000000    0.3500000000    0.0000000000    1.0
        0.5000000000    0.4000000000    0.0000000000    1.0
        0.5000000000    0.4500000000    0.0000000000    1.0
        0.5000000000    0.5000000000    0.0000000000    1.0
        0.4615384615    0.4615384615    0.0000000000    1.0
        0.4230769231    0.4230769231    0.0000000000    1.0
        0.3846153846    0.3846153846    0.0000000000    1.0
        0.3461538462    0.3461538462    0.0000000000    1.0
        0.3076923077    0.3076923077    0.0000000000    1.0
        0.2692307692    0.2692307692    0.0000000000    1.0
        0.2307692308    0.2307692308    0.0000000000    1.0
        0.1923076923    0.1923076923    0.0000000000    1.0
        0.1538461538    0.1538461538    0.0000000000    1.0
        0.1153846154    0.1153846154    0.0000000000    1.0
        0.0769230769    0.0769230769    0.0000000000    1.0
        0.0384615385    0.0384615385    0.0000000000    1.0
        0.0000000000    0.0000000000    0.0000000000    1.0
        0.0312500000    0.0312500000    0.0312500000    1.0
        0.0625000000    0.0625000000    0.0625000000    1.0
        0.0937500000    0.0937500000    0.0937500000    1.0
        0.1250000000    0.1250000000    0.1250000000    1.0
        0.1562500000    0.1562500000    0.1562500000    1.0
        0.1875000000    0.1875000000    0.1875000000    1.0
        0.2187500000    0.2187500000    0.2187500000    1.0
        0.2500000000    0.2500000000    0.2500000000    1.0
        0.2812500000    0.2812500000    0.2812500000    1.0
        0.3125000000    0.3125000000    0.3125000000    1.0
        0.3437500000    0.3437500000    0.3437500000    1.0
        0.3750000000    0.3750000000    0.3750000000    1.0
        0.4062500000    0.4062500000    0.4062500000    1.0
        0.4375000000    0.4375000000    0.4375000000    1.0
        0.4687500000    0.4687500000    0.4687500000    1.0
        0.5000000000    0.5000000000    0.5000000000    1.0
$ mpiexec -np 4 pw.x -in band_srvo3.in

bands_srvo3.in

&BANDS
prefix = "srvo3",
outdir = "./",
!filband = "band.dat"
!lsym = .true.
/
$ mpiexec -np 4 bands.x -in bands_srvo3.in
plot [][11:18] "bands.out.gnu" u 1:2 w p tit "Orig", 12.3116 tit "E_F", "srvo3_band.dat" u ($1*0.6146):2 tit "Wannier" w l
../../../_images/band_srvo3.png