ACFDT/RPA calculations: Difference between revisions
Line 59: | Line 59: | ||
== Large Systems == | == Large Systems == | ||
Virtually the same flags and procedures apply to the new low scaling RPA algorithm implemented in vasp.6.<ref name="kaltak2"/> | Virtually the same flags and procedures apply to the new low scaling RPA algorithm implemented in vasp.6.<ref name="kaltak2"/> However, in the last step {{TAG|ALGO}}=''ACFDT'' needs to be replaced by either {{TAG|ALGO}}=''ACFDTR'' or {{TAG|ALGO}}=''RPAR'' in order to calculate the independent particle polarizability <math> \chi </math> efficiently. | ||
To this end, the polarizability is calculated first on an imaginary time grid by contracting two non-interacting Green's functions<ref name="rojas"/> | To this end, the polarizability is calculated first on an imaginary time grid by contracting two non-interacting Green's functions<ref name="rojas"/> |
Revision as of 09:53, 21 September 2017
The ACFDT-RPA groundstate energy () is the sum of the ACFDT-RPA correlation energy and the Hartree-Fock energy evaluated non self-consistently using DFT orbitals :
.
Note that, here includes also the Hartree energy, the kinetic energy, as well as the Ewald energy of the ions, whereas often in literature refers only to the exact exchange energy evaluated using DFT orbitals.
If ALGO=ACFDT is set in the INCAR file, VASP calculates the correlation energy in the random phase approximation. To this end, VASP calculates first the independent particle response function, using the virtual (unoccupied) states found in the WAVECAR file, and then determines the correlation energy using the plasmon fluctuation equation:
.
General Recipe to Calculate ACFDT-RPA Total Energies
In practice, RPA energy calculations need to proceed in four steps (VASP can not yet perform all required steps in a single VASP run).
First step (a standard DFT run): All occupied orbitals (and as usual in VASP, a few unoccupied orbitals) of the DFT-Hamiltonian are calculated:
EDIFF = 1E-8 ISMEAR = 0 ; SIGMA = 0.05
This can be done with your favorite setup, but we recommend to attain very high precision (small EDIFF flag) and to use a small smearing width (SIGMA flag), and to avoid higher order Methfessel-Paxton smearing (see also ISMEAR). We suggest to use PBE orbitals as input for the ACFDT-RPA run, but other choices are possible as well, e.g. LDA or hybrid functionals such as HSE. For hybrid functionals, we suggest to carefully consider the caveats mentioned in reference [1], specifically the RPA dielectric matrix yields significantly weak screening for hybrid functionals, which deteriorates RPA results.
Second step: the Hartree Fock energy is calculated using the predetermined DFT orbitals:
ALGO = EIGENVAL ; NELM = 1 LWAVE=.FALSE. ! avoid accidental update of WAVECAR LHFCALC = .TRUE. ; AEXX = 1.0 ! you my set ALDAC = 0.0 but the default is 1-AEXX ISMEAR = 0 ; SIGMA = 0.05
For insulators and semiconductors with a sizable gap, faster convergence of the Hartree-Fock energy can be obtained by setting HFRCUT=-1, altough this slows down k-point convergence for metals.
Third step: Search for maximum number of plane-waves: in the OUTCAR file of the first step, and run VASP again with the following INCAR file to determine all virtual states by an exact diagonalization of the Hamiltonian (DFT or hybrid, make certain to use the same Hamiltonian as in step 1):
NBANDS = maximum number of plane-waves (times 2 for gamma-only calculations) ALGO = Exact ! exact diagonalization NELM = 1 ! one step suffices since WAVECAR is pre-converged LOPTICS = .TRUE. ISMEAR = 0 ; SIGMA = 0.05
For calculations using the gamma-point only version of vasp, NBANDS must be set to twice the maximum number of plane-waves: (found in the OUTCAR file) in step 1. For metals, we recommend to avoid setting LOPTICS=.TRUE., since this slows down k-point convergence.[2]
Fourth step: Calculate the ACFDT-RPA correlation energy:
NBANDS = maximum number of plane-waves ALGO = ACFDT NOMEGA = 8-24
To reach technical convergence, a number of flags are available to control the evaluation of the ACFDT-RPA correlation energy in the fourth step. The expression for the ACFDT-RPA correlation energy reads:
.
The sum over reciprocal lattice vectors has to be truncated at some , determined by < ENCUTGW, which can be set in the INCAR file. The default value is ENCUT, which experience has taught us not to change. For systematic convergence tests, instead increase ENCUT and repeat steps 1 to 4, but be aware that the "maximum number of plane-waves" changes when ENCUT is increased. Note that it is virtually impossible, to converge absolute correlation energies. Rather concentrate on relative energies (e.g. energy differences between two solids, or between a solid and the constituent atoms).
Since correlation energies converge very slowly with respect to , VASP automatically extrapolates to the infinite basis set limit using a linear regression to the equation [3],[2],[4]:
.
Furthermore, the Coulomb kernel is smoothly truncated between ENCUTGWSOFT and ENCUTGW using a simple cosine like window function (Hann window function). The default for ENCUTGWSOFT is 0.8ENCUTGW (again we do not recommend to change this default).
The integral over is evaluated by means of a highly accurate mini-max integration.[5] The number of points is determined by the flag NOMEGA, whereas the energy range of transitions is determined by the band gap and the energy difference between the lowest occupied and highest unoccupied one-electron orbital. VASP determines these values automatically (from vasp.5.4.1 on), and the user should only carefully converge with respect to the number of frequency points NOMEGA. A good choice is usually NOMEGA=12, however, for large gap systems one might obtain eV convergence per atom already using 8 points, whereas for metals up to NOMEGA=24 frequency points are sometimes necessary, in particular, for large unit cells.
Strictly adhere to the steps outlines above. Specifically, be aware that steps two and three require the WAVECAR file generated in step one, whereas step four requires the WAVECAR and WAVEDER file generated in step three (generated by setting LOPTICS=.TRUE.).
Large Systems
Virtually the same flags and procedures apply to the new low scaling RPA algorithm implemented in vasp.6.[6] However, in the last step ALGO=ACFDT needs to be replaced by either ALGO=ACFDTR or ALGO=RPAR in order to calculate the independent particle polarizability efficiently.
To this end, the polarizability is calculated first on an imaginary time grid by contracting two non-interacting Green's functions[7]
and using a compressed Fourier transformation on the imaginary axis subsequently
The remaining step is the evaluation of the correlation energy and is the same as described above.
Crucial to this approach is the accuracy of the Fourier transformation from , which in general depends on two factors.
First, the grid order that can be set by NOMEGA in the INCAR file. Here, similar choices as for the ACFDT algorithms are usually sufficient. Second, the grid points and Fouier matrix have to be optimized in the same interval spanned by all possible transition energies in the polarizability. The minimum (maximum) transition energy can be set with the OMEGAMIN (OMEGATL) tag and should be smaller (larger) than the band gap (maximum transition energy) of the previous DFT calculation. VASP determines these values automatically and writes it in the OUTCAR after the lines
Response functions by GG contraction:
These values should be checked for consistency. Furthermore we recommend to check the grid and transformation errors by looking for following lines in the OUTCAR file
| nu_ 1= 0.1561030E+00 ERR= 0.6327933E-05 finished after 1 steps | Maximum error of time grid: 0.1407141E-06 Maximum error of frequency grid: 0.3369591E-06
The value after ERR= corresponds to the first frequency point and should be of similar order as the maximum errors of the time and frequency grid.
Note on Parallelization
The low scaling RPA algorithm requires significantly more memory than the conventional method described in the previous section, because two Green's functions (one polarizability ) on NOMEGA imaginary times (frequencies ) have to be stored. To reduce the memory overhead the low scaling RPA algorithm exploits Fast Fourier Transformations (FFT) to avoid storing matrices on the real space grid, on the one hand. On the other hand, the code is massively parallelized, so that both the Green's function and polarizability matrices are distributed as well as the individual imaginary grid points.
The distribution of the imaginary grid points can be set by hand with the NTAUPAR and NOMEGAPAR tags, which splits the imaginary grid points NOMEGA into NTAUPAR time and NOMEGAPAR groups. For this purpose both tags have to be divisors of NOMEGA.
Usually the default values are reasonable choices. For small systems or on large memory architectures NTAUPAR should be increased to NOMEGAPAR.
Some Issues Particular to ACFDT-RPA Calculations on Metals
For metals, the RPA groundstate energy converges the fastest with respect to k-points, if the exchange (Eq. (12) in reference [2]) and correlation energy are calculated on the same k-point grid, HFRCUT= is not set, and the long-wavelength contributions from the polarizability are not considered (see reference [2]).
To evaluate Eq. (12), a correction energy for related to partial occupancies has to be added to the RPA groundstate energy:[2]
.
In vasp.5.4.1, this value is calculated for any HF type calculation (step 2) and can be found in the OUTCAR file after the total energy (in the line starting with exchange ACFDT corr. =).
To neglect the long-wavelength contributions, simply set LOPTICS=.FALSE. in the ALGO=Exact step (third step), and remove the WAVEDER files in the directory.
Possible Tests and Known Issues
Convergence with respect to the number of plane waves can be rather slow, and we recommend to test the calculations carefully. Specifically, the calculations should be performed at the default energy cutoff ENCUT, and at an increased cutoff (ideally the default energy cutoff ). Another issue is that energy volume-curves are sometimes not particularly smooth. In that case, the best strategy is to set the following parameters:
ENCUT = 1.3 times default cutoff energy ENCUTGWSOFT = 0.5 times default cutoff energy
where the default cutoff energy is the usual cutoff energy (the maximum value of ENMAX in the POTCAR file). The frequency integration also needs to be checked carefully, in particular for small gap systems (some symmetry broken atoms) convergence can be rather slow, since the one-electron band gap can be very small, requiring a very small minimum in the frequency integration.
Related Tags and Sections
- ALGO for response functions and ACFDT calculations
- NOMEGA, NOMEGAR number of frequency points
- LHFCALC, switches on HF calculations
- LOPTICS, required in the DFT step to store head and wings
- ENCUTGW, to set cutoff for response functions
- ENCUTGWSOFT
- PRECFOCK controls the FFT grids in HF, GW, RPA calculations
- NTAUPAR controls the number of imaginary time groups in space-time GW and RPA calculations
- NOMEGAPAR controls the number of imaginary frequency groups in space-time GW and RPA calculations
References
- ↑ J. Paier, M. Marsman, G. Kresse, Phys. Rev. B 78, 121201(R)-1-4 (2008).
- ↑ a b c d e J. Harl, L. Schimka, and G. Kresse, Phys. Rev. B 81, 115126 (2010).
- ↑ J. Harl and G. Kresse, Phys. Rev. B 77, 045136 (2008).
- ↑ J. Klimeš, M. Kaltak, and G. Kresse, Phys. Rev. B 90, 075125 (2014).
- ↑ M. Kaltak, J. Klimeš, and G. Kresse, Journal of Chemical Theory and Computation 10, 2498-2507 (2014).
- ↑ M. Kaltak, J. Klimeš, and G. Kresse, Phys. Rev. B 90, 054115 (2014)
- ↑ H. N. Rojas, R. W. Godby and R. J. Needs, Phys. Rev. Lett. 74, 1827 (1995)