Wanniernization using Quantum ESPRESSO¶
SCF calculation of Quantum ESPRESSO¶
&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.
&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.
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¶
&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:
&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
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