First I would like to thank for the new detailed cRPA documentation https://www.vasp.at/wiki/index.php/Cons ... _formalism . This gives a nice overview over the options implemented in Vasp. However I would like to ask / comment / correct on statement on the bottom of the page under caveats:
This indicates that one should avoid using derivatives of the wavefunctions to correct the q=0 polarizability. However, in the cRPA example for SrVO3 https://www.vasp.at/wiki/index.php/CRPA_of_SrVO3 this is done. And I would even argue it is crucial to perform these corrections to achieve accurate results for smaller k-meshes. However, maybe you have a good reason why one should avoid doing this and read in the WAVEDER to perform the corrections. If I understand correctly Vasp will just set eps(q=0)=1 if the WAVEDER is not read, correct? At least this is what is printed underThe cRPA method is usually applied to systems with a zero-band gap (metallic system) and, thus, suffers from slow k-point convergence. Most reliably, the usage of k-p perturbation theory should be avoided. That is, LOPTICS=.FALSE. should be set in the preceding DFT step and/or the WAVEDER should be deleted before the cRPA step.
Code: Select all
NQ= 1 0.0000 0.0000 0.0000,
CHI: cpu time 86.9279: real time 23.9377
SCATTER: cpu time 0.0412: real time 0.0231
LFIELD: cpu time 0.0000: real time 0.0000
HEAD OF MICROSCOPIC DIELECTRIC TENSOR (INDEPENDENT PARTICLE)
-------------------------------------
w= 0.000 0.000
1.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 1.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 1.0000 0.0000
0.000 1.000 0.000 dielectric constant
I did some convergence test for SrVO3 and found this for kpoint convergence: I plotted results as NK^(-1/3) which should be roughly the kpoint convergence for GW / polarizability, I think. From this it becomes clear that at the highest kmesh I calculated (11x11x11) the screened U is still 20% off, and will only convergence to the k-p corrected value at around 200x200x200 kpoints, which is clearly unfeasible to calculate.
I think, most other codes use these corrections to correctly capture the q=0 contributions without going to large k-meshes (Abinit / RESPACK). However, maybe you have specific reasons in the implementation why you do not recommend using k-p theory for q=0 corrections? Otherwise I thought it might be nice to change the sentences in wiki accordingly. Either the one in the cRPA tutorial for SrVO3 or the cRPA overview.
Best,
Alexander Hampel (CCQ, Flatiron Institute)