Tutorial¶
In this tutorial, we downfold Sr2VO4 into three-orbitals 2D Hubbard model, and simulate that model with HPhi/mVMC. We employ QuantumESPRESSO for the DFT calculation.
SCF calculation of charge density¶
First, we perform the SCF calculation of the charge density. The input file is as follows:
&CONTROL
calculation = 'scf'
pseudo_dir = './'
prefix = 'sr2vo4'
/
&SYSTEM
ibrav = 0
nat = 7
ntyp = 3
ecutwfc = 120.0
ecutrho = 480
occupations = 'tetrahedra_opt'
/
&ELECTRONS
mixing_beta = 0.3
/
CELL_PARAMETERS angstrom
-1.917800 1.917800 6.280100
1.917800 -1.917800 6.280100
1.917800 1.917800 -6.280100
ATOMIC_SPECIES
O 15.999400 O_ONCV_PBE-1.0.upf
Sr 87.620000 Sr_ONCV_PBE-1.0.upf
V 50.941500 V_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Sr 0.644600 0.644600 1.000000
Sr 0.355400 0.355400 0.000000
V 0.000000 0.000000 0.000000
O 0.500000 0.000000 0.500000
O 0.000000 0.500000 0.500000
O 0.842000 0.842000 1.000000
O 0.158000 0.158000 0.000000
K_POINTS automatic
8 8 8 0 0 0
The pseudopotential (UPF file) are downloaded from The SG15 Optimized Norm-Conserving Vanderbilt (ONCV) pseudopotentials.
http://www.quantum-simulation.org/potentials/sg15_oncv/sg15_oncv_upf_2015-10-07.tar.gz
We use the program pw.x
in QuantumESPRESSO as follows.
$ pw.x -in scf.in
(Optional) Band structure¶
&CONTROL
calculation = 'bands'
pseudo_dir = './'
prefix = 'sr2vo4'
/
&SYSTEM
ibrav = 0
nat = 7
ntyp = 3
ecutwfc = 120.0
ecutrho = 480
nbnd = 57
/
&ELECTRONS
/
CELL_PARAMETERS angstrom
-1.917800 1.917800 6.280100
1.917800 -1.917800 6.280100
1.917800 1.917800 -6.280100
ATOMIC_SPECIES
O 15.999400 O_ONCV_PBE-1.0.upf
Sr 87.620000 Sr_ONCV_PBE-1.0.upf
V 50.941500 V_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Sr 0.644600 0.644600 1.000000
Sr 0.355400 0.355400 0.000000
V 0.000000 0.000000 0.000000
O 0.500000 0.000000 0.500000
O 0.000000 0.500000 0.500000
O 0.842000 0.842000 1.000000
O 0.158000 0.158000 0.000000
K_POINTS crystal
49
0.5000000000 0.5000000000 -0.5000000000 1.0
0.4433287500 0.5566712500 -0.5000000000 1.0
0.3866575000 0.6133425000 -0.5000000000 1.0
0.3299862500 0.6700137500 -0.5000000000 1.0
0.2733150000 0.7266850000 -0.5000000000 1.0
0.2166437500 0.7833562500 -0.5000000000 1.0
0.1599725000 0.8400275000 -0.5000000000 1.0
0.1033012500 0.8966987500 -0.5000000000 1.0
0.0466300000 0.9533700000 -0.5000000000 1.0
0.0919660000 0.9080340000 -0.4546620000 1.0
0.1373020000 0.8626980000 -0.4093240000 1.0
0.1826380000 0.8173620000 -0.3639860000 1.0
0.2279740000 0.7720260000 -0.3186480000 1.0
0.2733100000 0.7266900000 -0.2733100000 1.0
0.3186480000 0.6813520000 -0.3186480000 1.0
0.3639860000 0.6360140000 -0.3639860000 1.0
0.4093240000 0.5906760000 -0.4093240000 1.0
0.4546620000 0.5453380000 -0.4546620000 1.0
0.5000000000 0.5000000000 -0.5000000000 1.0
0.3750000000 0.3750000000 -0.3750000000 1.0
0.2500000000 0.2500000000 -0.2500000000 1.0
0.1250000000 0.1250000000 -0.1250000000 1.0
0.0000000000 0.0000000000 0.0000000000 1.0
-0.0625000000 0.0625000000 0.0000000000 1.0
-0.1250000000 0.1250000000 0.0000000000 1.0
-0.1875000000 0.1875000000 0.0000000000 1.0
-0.2500000000 0.2500000000 0.0000000000 1.0
-0.3125000000 0.3125000000 0.0000000000 1.0
-0.3750000000 0.3750000000 0.0000000000 1.0
-0.4375000000 0.4375000000 0.0000000000 1.0
-0.5000000000 0.5000000000 0.0000000000 1.0
-0.5000000000 0.5000000000 0.0466300000 1.0
-0.4546620000 0.4546620000 0.0919660000 1.0
-0.4093240000 0.4093240000 0.1373020000 1.0
-0.3639860000 0.3639860000 0.1826380000 1.0
-0.3186480000 0.3186480000 0.2279740000 1.0
-0.2733100000 0.2733100000 0.2733100000 1.0
-0.2277583333 0.2277583333 0.2277583333 1.0
-0.1822066667 0.1822066667 0.1822066667 1.0
-0.1366550000 0.1366550000 0.1366550000 1.0
-0.0911033333 0.0911033333 0.0911033333 1.0
-0.0455516667 0.0455516667 0.0455516667 1.0
0.0000000000 0.0000000000 0.0000000000 1.0
0.0000000000 0.0833333333 0.0000000000 1.0
0.0000000000 0.1666666667 0.0000000000 1.0
0.0000000000 0.2500000000 0.0000000000 1.0
0.0000000000 0.3333333333 0.0000000000 1.0
0.0000000000 0.4166666667 0.0000000000 1.0
0.0000000000 0.5000000000 -0.0000000000 1.0
We use pw.x
.
$ pw.x -in band.in
&BANDS
prefix = 'sr2vo4'
lsym = .false.
/
We use bands.x
QuantumESPRESSO.
$ bands.x -in bands.in
We can plot the band structure by reading output bands.out.gnu
from
GnuPlot etc.
Kohn-Sham orbitals for Wannier¶
&CONTROL
calculation = 'nscf'
pseudo_dir = './'
wf_collect = .true.
prefix = 'sr2vo4'
/
&SYSTEM
ibrav = 0
nat = 7
ntyp = 3
ecutwfc = 120.0
ecutrho = 480
occupations = 'tetrahedra_opt'
nbnd = 100
/
&ELECTRONS
/
CELL_PARAMETERS angstrom
-1.917800 1.917800 6.280100
1.917800 -1.917800 6.280100
1.917800 1.917800 -6.280100
ATOMIC_SPECIES
O 15.999400 O_ONCV_PBE-1.0.upf
Sr 87.620000 Sr_ONCV_PBE-1.0.upf
V 50.941500 V_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Sr 0.644600 0.644600 1.000000
Sr 0.355400 0.355400 0.000000
V 0.000000 0.000000 0.000000
O 0.500000 0.000000 0.500000
O 0.000000 0.500000 0.500000
O 0.842000 0.842000 1.000000
O 0.158000 0.158000 0.000000
K_POINTS automatic
4 4 4 0 0 0
We use pw.x
as
$ pw.x -in nscf.in
Then, we use the utility qe2respack.sh
which is included in the RESPACK package.
The command-line argument is the name of [prefix].save
directory.
$ qe2respack.sh sr2cuo3.save
Wannier function, dielectric function, effective interaction¶
&PARAM_CHIQW
Num_freq_grid = 1
flg_cRPA = 1
/
&PARAM_WANNIER
N_wannier = 3
Lower_energy_window = 9.865
Upper_energy_window = 13.35
N_initial_guess = 3
/
dxy 0.2 0.0 0.0 0.0
dyz 0.2 0.0 0.0 0.0
dzx 0.2 0.0 0.0 0.0
&PARAM_INTERPOLATION
N_sym_points = 10
dense = 12, 12, 12
/
0.50000 0.50000 -0.50000
0.04663 0.95337 -0.50000
0.27331 0.72669 -0.27331
0.50000 0.50000 -0.50000
0.00000 0.00000 0.00000
-0.50000 0.50000 0.00000
-0.50000 0.50000 0.04663
-0.27331 0.27331 0.27331
0.00000 0.00000 0.00000
0.00000 0.50000 0.00000
&PARAM_VISUALIZATION
flg_vis_wannier = 1,
ix_vis_min = -1,
ix_vis_max = 2,
iy_vis_min = -1,
iy_vis_max = 2,
iz_vis_min = -1,
iz_vis_max = 2
/
&PARAM_CALC_INT
calc_ifreq = 1
ix_intJ_min = 0
ix_intJ_max = 0
iy_intJ_min = 0
iy_intJ_max = 0
iz_intJ_min = 0
iz_intJ_max = 0
/
We use calc_wannier
, calc_chiqw
, calc_j3d
,
calc_w3d
in RESPACK.
$ calc_wannier < respack.in
$ calc_chiqw < respack.in
$ calc_w3d < respack.in
$ calc_j3d < respack.in
Quantum lattice mode for HPhi/mVMC¶
First, we translate the hopping file etc. created by RESPACK
into the Wannier90 format.
For this purpose, we use the utility respack2wan90.py
included in HPhi/mVMC.
The command-line argument should be the same as the input parameter CDataFileHead
for Standard mode of HPhi/mVMC.
If we do not specify that argument, the default value zvo
is used.
$ respack2wan90.py zvo
Then we can run HPhi/mVMC with the standard mode.
model = "Hubbard"
lattice = "wannier90"
a0w = 2
a0l = 0
a0h = 2
a1w = 0
a1l = 2
a1h = 2
a2w = 1
a2l = 0
a2h = 0
2Sz = 0
nelec = 4
cutoff_t = 0.1
cutoff_u = 1.0
cutoff_j = 0.1
$ vmc.out -s stan.in