CRPA of SrVO3: Difference between revisions
(→Task) |
|||
Line 119: | Line 119: | ||
{{TAGBL|LWRITE_WANPROJ}} = .TRUE. # write wannier projection file | {{TAGBL|LWRITE_WANPROJ}} = .TRUE. # write wannier projection file | ||
and run VASP. The CRPA interaction values can be found in the {{TAG|OUTCAR}} file after following lines | and run VASP. The CRPA interaction values for <math>\omega=0</math> can be found in the {{TAG|OUTCAR}} file after following lines | ||
screened Coulomb repulsion U_iijj between MLWFs: | screened Coulomb repulsion U_iijj between MLWFs: | ||
including an averaged value: | including an averaged value: | ||
Line 125: | Line 125: | ||
Make a copy of the output file | Make a copy of the output file | ||
cp {{TAGBL|OUTCAR}} OUTCAR.CRPA | cp {{TAGBL|OUTCAR}} OUTCAR.CRPA | ||
:'''N.B.:''' The frequency point <math>\omega</math> can be set by {{TAG|OMEGAMAX}} in the INCAR. For instance to evaluate the CRPA interaction matrix at <math>\omega=10</math> eV, add | |||
{{TAGBL|OMEGAMAX}} = 10 | |||
to the INCAR and restart VASP. In contrast, adding following two lines to the {{TAG|INCAR}} | |||
{{TAGBL|OMEGAMAX}} = 10 | |||
{{TAGBL|NOMEGA_REAL}} = 0 | |||
tells VASP to calculate the interaction on the imaginary frequency axis at <math>\omega=i 10</math>. | |||
=== CRPA calculation on full imaginary frequency axis (optional) === | === CRPA calculation on full imaginary frequency axis (optional) === |
Revision as of 12:56, 9 July 2018
Task
Calculation of the Coulomb matrix elements Uijkl in the constrained Random Phase Approximation (CRPA) of SrVO3 between the Vanadium t2g states.
Performing a CRPA calculation with VASP is a 3-step procedure: a DFT groundstate calculation, a calculation to obtain a number of virtual orbitals, and the actual CRPA calculation itself.
N.B.: This example involves quite a number of individual calculations. The easiest way to run this example is to execute:
./doall.sh
And compare the output of the different steps (DFT, GW, HSE) by:
./plotall.sh
In any case, one can consider the doall.sh script to be an overview of the steps described below.
DFT groundstate calculation
The first step is a conventional DFT (in this case PBE) groundstate calculation.
- INCAR (see INCAR.DFT)
SYSTEM = SrVO3 # system name NBANDS = 36 # small number of bands ISMEAR = 0 # Gaussian smearing EDIFF = 1E-8 # high precision for groundstate calculation KPAR = 2 # parallelization of k-points in two groups
Copy the aforementioned file to INCAR:
cp INCAR.DFT INCAR
The POSCAR file describes the structure of the system:
SrVO3 3.84652 #cubic fit for 6x6x6 k-points +1.0000000000 +0.0000000000 +0.0000000000 +0.0000000000 +1.0000000000 +0.0000000000 +0.0000000000 +0.0000000000 +1.0000000000 Sr V O 1 1 3 Direct +0.0000000000 +0.0000000000 +0.0000000000 +0.5000000000 +0.5000000000 +0.5000000000 +0.5000000000 +0.5000000000 +0.0000000000 +0.5000000000 +0.0000000000 +0.5000000000 +0.0000000000 +0.5000000000 +0.5000000000
This file remains unchanged in the following.
The KPOINTS file describes how the first Brillouin zone is sampled. In the first step we use a uniform k-point sampling:
- KPOINTS (see KPOINTS.BULK)
Automatically generated mesh 0 Gamma 4 4 4 0 0 0
Mind: this is definitely not dense enough for a high-quality description of SrVO3, but in the interest of speed we will live with it. Copy the aforementioned file to KPOINTS:
cp KPOINTS.BULK KPOINTS
and run VASP. If all went well, one should obtain a WAVECAR file containing the PBE wavefunction.
Obtain DFT virtual orbitals and long-wave limit
Use following INCAR file to increase the number of virtual states and to determine the long-wave limit of the polarizability (stored in WAVEDER):
- INCAR (see INCAR.DIAG)
SYSTEM = SrVO3 # system name ISMEAR = 0 # Gaussian smearing KPAR = 2 # parallelization of k-points in two groups ALGO = Exact # exact diagonalization NELM = 1 # one electronic step suffices, since WAVECAR from previous step is present NBANDS = 96 # need for a lot of bands in GW LOPTICS = .TRUE. # we need d phi/ d k for GW calculations for long-wave limit
Restart VASP. At this stage it is a good idea to make a safety copy of the WAVECAR and WAVEDER files since we will repeatedly need them in the calculations that follow:
cp WAVECAR WAVECAR.DIAG cp WAVEDER WAVEDER.DIAG
CRPA Calculation
Calculate the CRPA interaction parameters for the t2g states by using the PBE wavefunction as input
cp WAVECAR.DIAG WAVECAR cp WAVEDER.DIAG WAVEDER
Use following Wannier projection for the basis:
- wannier90.win (see wannier90.win.CRPA)
num_wann = 3 num_bands= 96 # PBE energy window of t2g states (band 21-23) dis_win_min = 6.4 dis_win_max = 9.0 begin projections V:dxy;dxz;dyz end projections
Copy this file to wannier90.win
cp wannier90.win.CRPA wannier90.win
And use following input file as
- INCAR (see INCAR.CRPA)
SYSTEM = SrVO3 # system name ISMEAR = 0 # Gaussian smearing NCSHMEM = 1 # switch off shared memory for chi ALGO = CRPA # Switch on CRPA NBANDS = 96 # CRPA needs many empty states PRECFOCK = Fast # fast mode for FFTs NTARGET_STATES = 1 2 3 # exclude wannier states 1 - 3 in screening LWRITE_WANPROJ = .TRUE. # write wannier projection file
and run VASP. The CRPA interaction values for can be found in the OUTCAR file after following lines
screened Coulomb repulsion U_iijj between MLWFs:
including an averaged value:
screened Hubbard U = 3.3746 -0.0000
Make a copy of the output file
cp OUTCAR OUTCAR.CRPA
- N.B.: The frequency point can be set by OMEGAMAX in the INCAR. For instance to evaluate the CRPA interaction matrix at eV, add
OMEGAMAX = 10
to the INCAR and restart VASP. In contrast, adding following two lines to the INCAR
OMEGAMAX = 10 NOMEGA_REAL = 0
tells VASP to calculate the interaction on the imaginary frequency axis at .
CRPA calculation on full imaginary frequency axis (optional)
To calculate the CRPA interaction for a set of imaginary frequency points use once again the PBE wavefunction as input
cp WAVECAR.DIAG WAVECAR cp WAVEDER.DIAG WAVEDER
This step requires uses the WANPROJ file from previous step, no wannier90.win file is necessary.
Select the space-time CRPA algorithm with following file:
- INCAR (see INCAR.CRPAR)
SYSTEM = SrVO3 # system name ISMEAR = 0 # Gaussian smearing NCSHMEM = 1 # switch off shared memory for chi ALGO = CRPAR # Switch on CRPA on imaginary axis NBANDS = 96 # CRPA needs many empty states PRECFOCK = Fast # fast mode for FFTs NTARGET_STATES = 1 2 3 # exclude wannier states 1 - 3 in screening NCRPA_BANDS = 21 22 23 # remove bands 21-23 in screening, currently required for space-time algo NOMEGA = 12 # use 12 imaginary frequency points NTAUPAR = 4 # distribute 12 time points into 4 groups
Run VASP and make a copy of the output file
cp OUTCAR OUTCAR.CRPAR
The resulting interactions are written for every imaginary frequency point to the OUTCAR file. For instance, to extract the averaged on-site U interaction for each point enter following command
grep "screened Hubbard U" OUTCAR
resulting in following output
screened Hubbard U = 3.3798 -0.0000 screened Hubbard U = 3.4172 -0.0000 screened Hubbard U = 3.5169 -0.0000 screened Hubbard U = 3.7418 -0.0000 screened Hubbard U = 4.2069 -0.0000 screened Hubbard U = 5.0802 -0.0000 screened Hubbard U = 6.5456 -0.0000 screened Hubbard U = 8.6426 -0.0000 screened Hubbard U = 11.0815 -0.0000 screened Hubbard U = 13.3615 -0.0000 screened Hubbard U = 15.0636 -0.0000 screened Hubbard U = 16.0412 -0.0000
Here each line corresponds to an (increasing) imaginary frequency point. The first line is the CRPA interaction at the lowest frequency point and is roughly the same as the value at 0 calculated in previous step. The last line (interaction at the highest frequency point) approaches the bare Coulomb interaction in this basis, which is also written to the OUTCAR:
bare Hubbard U = 16.3485 0.0000
Back to the main page.