CRPA of SrVO3: Difference between revisions

From VASP Wiki
Line 152: Line 152:
Run VASP and make a copy of the output file
Run VASP and make a copy of the output file
  cp {{TAGBL|OUTCAR}} OUTCAR.CRPAR
  cp {{TAGBL|OUTCAR}} OUTCAR.CRPAR
The resulting interactions are written for every imaginary frequency point to the {{TAG|OUTCAR}} file.
 
For instance, to extract the averaged on-site U interaction for each point enter following command
Note that the same frequency grid is used as for {{TAG|ALGO}}=RPA (RPA correlation energy calculation) and can not be changed directly.
The used imaginary frequency points can be extracted from the {{TAG|OUTCAR}} file with
grep "frequency:" OUTCAR
which results in an output similar to
spin components:  1  1, frequency:    0.0000    0.2248
spin components:  1  1, frequency:    0.0000    0.7221
spin components:  1  1, frequency:    0.0000    1.3755
spin components:  1  1, frequency:    0.0000    2.3378
spin components:  1  1, frequency:    0.0000    3.8494
spin components:  1  1, frequency:    0.0000    6.3120
spin components:  1  1, frequency:    0.0000  10.4216
spin components:  1  1, frequency:    0.0000  17.4239
spin components:  1  1, frequency:    0.0000  29.6555
spin components:  1  1, frequency:    0.0000  51.9489
spin components:  1  1, frequency:    0.0000  96.9889
spin components:  1  1, frequency:    0.0000  223.8731
The last two columns correspond to the real and imaginary part of the used frequencies and the corresponding interaction values for the averaged on-site U interaction can be extracted with
  grep "screened Hubbard U" OUTCAR
  grep "screened Hubbard U" OUTCAR
resulting in following output
giving
  screened Hubbard U =    3.3798  -0.0000
  screened Hubbard U =    3.3798  -0.0000
  screened Hubbard U =    3.4172  -0.0000
  screened Hubbard U =    3.4172  -0.0000

Revision as of 14:23, 9 July 2018

Task

Calculation of the Coulomb matrix elements 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.

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:

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.

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):

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:

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

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 
 NOMEGAR = 0 

tells VASP to calculate the interaction on the imaginary frequency axis at . This can be used to evaluate at a specific Matsubara frequency point.

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:

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

Note that the same frequency grid is used as for ALGO=RPA (RPA correlation energy calculation) and can not be changed directly. The used imaginary frequency points can be extracted from the OUTCAR file with

grep "frequency:" OUTCAR

which results in an output similar to

spin components:  1  1, frequency:    0.0000    0.2248
spin components:  1  1, frequency:    0.0000    0.7221
spin components:  1  1, frequency:    0.0000    1.3755
spin components:  1  1, frequency:    0.0000    2.3378
spin components:  1  1, frequency:    0.0000    3.8494
spin components:  1  1, frequency:    0.0000    6.3120
spin components:  1  1, frequency:    0.0000   10.4216
spin components:  1  1, frequency:    0.0000   17.4239
spin components:  1  1, frequency:    0.0000   29.6555
spin components:  1  1, frequency:    0.0000   51.9489
spin components:  1  1, frequency:    0.0000   96.9889
spin components:  1  1, frequency:    0.0000  223.8731

The last two columns correspond to the real and imaginary part of the used frequencies and the corresponding interaction values for the averaged on-site U interaction can be extracted with

grep "screened Hubbard U" OUTCAR

giving

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 the averaged Hubbard interaction of the imaginary frequency points listed in the OUTCAR:

 imag. energies (cos points) w= 
   0.225    0.722    1.376    2.338    3.849    6.312   10.422   17.424
  29.656   51.949   96.989  223.873

Note that first interaction value is roughly the same as the one obtained in previous step for , while the last entry at a high imaginary frequency point of approaches the bare Coulomb interaction:

bare Hubbard U =   16.3485    0.0000


Back to the main page.