8.2. 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.

8.2.1. SCF calculation of charge density

First, we perform the SCF calculation of the charge density. The input file is as follows:

scf.in

&CONTROL
 calculation = 'scf'
  pseudo_dir = '../pseudo/'
      prefix = 'sr2vo4'
/
&SYSTEM
       ibrav = 0
         nat = 7
        ntyp = 3
     ecutwfc = 45.000000
     ecutrho = 360.000000
 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_pbe_v1.2.uspp.F.UPF
 Sr 87.620000 Sr.pbe-spn-rrkjus_psl.1.0.0.UPF
 V 50.941500 V_pbe_v1.uspp.F.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

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

8.2.2. (Optional) Band structure

band.in

&CONTROL
 calculation = 'bands'
  pseudo_dir = '../pseudo/'
      prefix = 'sr2vo4'
/
&SYSTEM
       ibrav = 0
         nat = 7
        ntyp = 3
     ecutwfc = 45.000000
     ecutrho = 360.000000
        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_pbe_v1.2.uspp.F.UPF
 Sr 87.620000 Sr.pbe-spn-rrkjus_psl.1.0.0.UPF
 V 50.941500 V_pbe_v1.uspp.F.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.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.

8.2.3. Kohn-Sham orbitals for Wannier

nscf.in

&CONTROL
 calculation = 'nscf'
  pseudo_dir = '../pseudo/'
  wf_collect = .true.
      prefix = 'sr2vo4'
/
&SYSTEM
       ibrav = 0
         nat = 7
        ntyp = 3
     ecutwfc = 45.000000
     ecutrho = 360.000000
 occupations = 'tetrahedra_opt'
        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_pbe_v1.2.uspp.F.UPF
 Sr 87.620000 Sr.pbe-spn-rrkjus_psl.1.0.0.UPF
 V 50.941500 V_pbe_v1.uspp.F.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

8.2.4. Wannier function, dielectric function, effective interaction

respack.in

&PARAM_CHIQW
Num_freq_grid = 1
!Ecut_for_eps = 
flg_cRPA = 1
MPI_num_proc_per_qcomm = 1
MPI_num_qcomm = 4
!flg_calc_type = 2
!n_calc_q = 8
/
&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

8.2.5. 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.

respack.in

model = "Hubbard"
lattice = "wannier90"
a0w = 2
a0l = 0
a0h = 2
a1w = 0
a1l = 2
a1h = 2
a2w = 1
a2l = 0
a2h = 0
method = "CG"
2Sz = 0
nelec = 4
exct = 1
cutoff_t = 0.2
cutoff_u = 0.4
cutoff_j = 0.1
$ vmc.out -s stan.in