Requests for technical support from the VASP group should be posted in the VASP-forum.

# CRPA of SrVO3

The following tutorial describes how to perform CRPA calculations, which is available as of VASP 6.

## Contents

## Task

Calculation of the Coulomb matrix elements in the constrained Random Phase Approximation (CRPA) of SrVO_{3} between the Vanadium t_{2g} 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

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:

Automatically generated mesh 0 Gamma 4 4 4 0 0 0

**Mind**: this is definitely not dense enough for a high-quality description of SrVO_{3}, 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):

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

spin components: 1 1, frequency: 0.0000 0.0000 screened Coulomb repulsion U_iijj between MLWFs: 1 2 3 1 3.3746 2.3385 2.3385 2 2.3385 3.3746 2.3385 3 2.3385 2.3385 3.3746 screened Coulomb repulsion U_ijji between MLWFs: 1 2 3 1 3.3746 0.4429 0.4429 2 0.4429 3.3746 0.4429 3 0.4429 0.4429 3.3746 screened Coulomb repulsion U_ijij between MLWFs: 1 2 3 1 3.3746 0.4429 0.4429 2 0.4429 3.3746 0.4429 3 0.4429 0.4429 3.3746 averaged interaction parameter screened Hubbard U = 3.3746 -0.0000 screened Hubbard u = 2.3385 0.0000 screened Hubbard J = 0.4429 -0.0000

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

In addition, the bare Coulomb interaction matrix is calculated for a high VCUTOFF and low energy cutoff ENCUTGW and written in that order to the OUTCAR file. Look for the lines similar to:

spin components: 1 1 bare Coulomb repulsion V_iijj between MLWFs: 1 2 3 1 16.3485 15.0984 15.0984 2 15.0984 16.3485 15.0984 3 15.0984 15.0984 16.3485 bare Coulomb repulsion V_ijji between MLWFs: 1 2 3 1 16.3485 0.5351 0.5351 2 0.5351 16.3485 0.5351 3 0.5351 0.5351 16.3485 bare Coulomb repulsion V_ijij between MLWFs: 1 2 3 1 16.3485 0.5351 0.5351 2 0.5351 16.3485 0.5351 3 0.5351 0.5351 16.3485 averaged bare interaction bare Hubbard U = 16.3485 -0.0000 bare Hubbard u = 15.0984 -0.0000 bare Hubbard J = 0.5351 0.0000

### CRPA calculation with spacetime Algorithm

Note that the same frequency grid is used as for ALGO=RPA (RPA correlation energy calculation) and can not be changed directly. To calculate the CRPA interaction for a set of automatically chosen imaginary frequency points use once again the PBE wavefunction as input

cp WAVECAR.DIAG WAVECAR cp WAVEDER.DIAG WAVEDER

Currently, 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

After a successful run, the interaction values are written to the OUTCAR file. Here is the result for the first frequency point:

spin components: 1 1, frequency: 0.0000 0.2248 screened Coulomb repulsion U_iijj between MLWFs: 1 2 3 1 3.3798 2.3436 2.3436 2 2.3436 3.3798 2.3436 3 2.3436 2.3436 3.3798 screened Coulomb repulsion U_ijji between MLWFs: 1 2 3 1 3.3798 0.4433 0.4433 2 0.4433 3.3798 0.4433 3 0.4433 0.4433 3.3798 screened Coulomb repulsion U_ijij between MLWFs: 1 2 3 1 3.3798 0.4433 0.4433 2 0.4433 3.3798 0.4433 3 0.4433 0.4433 3.3798 averaged interaction parameter screened Hubbard U = 3.3798 -0.0000 screened Hubbard u = 2.3436 0.0000 screened Hubbard J = 0.4433 -0.0000

**N.B.:**The number of frequency points should be large enough to guarantee for an accurate Fourier transformation of the CRPA polarizability matrix from the imaginary time to imaginary frequency domain. See ACFDT/RPA calculations for more information.

## Downloads

Back to the main page.