Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
kohn-sham_random-phase_approximation [2022/11/29 18:57] – [Kohn-Sham random-phase approximation] hesselmann | kohn-sham_random-phase_approximation [2024/07/12 08:37] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Kohn-Sham random-phase approximation ====== | ||
+ | Electron correlation energies within the random-phase approximation can be calculated by the programs **DIRPA**, **RPAX2** and **ACFDT** that are subdirectives of the driver command **KSRPA**. These methods should be used in conjunction with Kohn-Sham reference determinants, | ||
+ | |||
+ | A typical input to calculate the RPAX2 correlation energy is given by: | ||
+ | |||
+ | < | ||
+ | basis={ | ||
+ | set, | ||
+ | set, | ||
+ | |||
+ | ks,pbe | ||
+ | {ksrpa; rpax2, | ||
+ | </ | ||
+ | All methods are implemented using density-fitting of the two-electron repulsion integrals, see Refs. [2,4]. Because of this, auxiliary basis sets for fitting occupied-virtual orbital pairs have to be given, see section [[basis input# | ||
+ | |||
+ | References: | ||
+ | |||
+ | **RPA:**\\ | ||
+ | [1] F. Furche, [[https:// | ||
+ | **RPAX2: | ||
+ | [2] A. Heßelmann, [[https:// | ||
+ | [3] A. Heßelmann, Top. Curr. Chem. **365** 97 (2015)\\ | ||
+ | **ACFDT(ALDA): | ||
+ | [4] A. Heßelmann and A. Görling, [[https:// | ||
+ | |||
+ | |||
+ | ===== DIRPA program ===== | ||
+ | |||
+ | The direct RPA program (implemented with the algorithm described in [1]) has the following options: | ||
+ | |||
+ | * **ORB** record number containing the orbital coefficients and eigenvalues (mandatory) | ||
+ | * **AUXBAS** string containing the label for the auxiliary basis set (default '' | ||
+ | * **CORE** number of core orbitals (which are not correlated) | ||
+ | * **MAXIT** maximum number of iterations (default ’40’) | ||
+ | * **THREN** threshold for convergence of energy (default ’1d-8’) | ||
+ | * **FMIX** mixing factor for the amplitude update Tnew=fTold+(1−f)Tnew (default: ’0.4d0’) | ||
+ | * **RESTART** logical flag to enable a restart from an unfinished calculation. For this, the 3-index Coulomb integrals (Lc.dat) and the two amplitude files (T0.dat and T1.dat) are required if MODE=1 or MODE=2, see below. In case of MODE=3, Molpro’s file 4 needs to be saved in the previous calculation (using, e.g., '' | ||
+ | * **NOMAX** maximum number of Naux×Nvirt batches to be kept in memory (Naux: | ||
+ | * **MODE** can have the values ’0’, | ||
+ | * **L** string containing the scratch file name for the 3-index Coulomb integrals (default: ’Lc.dat’) | ||
+ | * **T0** string containing the scratch file name for the amplitudes (default: ’T0.dat’) | ||
+ | * **T1** string containing the scratch file name for the amplitude updates (default: ’T1.dat’) | ||
+ | * **SOSEX** logical flag, set to SOSEX=1 if the SOSEX energy shall be calculated after convergence (default: ’SOSEX=0’) | ||
+ | |||
+ | Note that in case of MODE=1 or MODE=2 it is recommended to have the wavefunction (wfu) directory located on a scratch partition. E.g., add the command line option '' | ||
+ | |||
+ | ===== RPAX2 program ===== | ||
+ | |||
+ | The RPAX2 method is an extension to the RPA and accounts for higher order particle-hole pair exchange contributions [2,3]. The RPAX2 program has the same options as the DIRPA program, see section [[Kohn-Sham random-phase approximation# | ||
+ | |||
+ | * **DIR** if set to DIR≠0 this enables a direct RPA calculation (default ’0’) | ||
+ | * **MEM** if set to MEM≠0 the 3-index Coulomb integrals and the amplitudes are kept in memory (default: 0) | ||
+ | |||
+ | Spin-unrestricted calculations can be done using the **URPAX2** program. In this case the orbitals from a preceeding unrestricted Kohn-Sham calculation have to be passed to the program (via the '' | ||
+ | |||
+ | ===== ACFDT program ===== | ||
+ | |||
+ | The ACFDT (adiabatic connection fluctuation-dissipation theorem) method is an alternative approach to derive the RPA. If used in conjunction with local adiabatic exchange-correlation kernels, the method can also describe electron-electron interaction contributions beyond the RPA. Currently, the ALDA xc-kernel can be used in the program (ACFDT(ALDA) method), see also Ref. [4]. The **ACFDT** program has the following options: | ||
+ | |||
+ | * **ORB** record number containing the orbital coefficients and eigenvalues (mandatory) | ||
+ | * **AUXBAS** string containing the label for the auxiliary basis set (default '' | ||
+ | * **CORE** number of core orbitals (which are not correlated) | ||
+ | * **NFREQ** number of frequency quadrature points (default ’20’) | ||
+ | * **NCOUP** number of coupling strength quadrature points (default ’7’) | ||
+ | * **GRIDTHR** threshold for grid accuracy (default ’1d-10’) | ||
+ | * **THRKERN** threshold for density in kernel integration (default ’1d-12’) | ||
+ | * **XFAC** factor tor ALDA exchange contribution (default ’1d0’) | ||
+ | * **CFAC** factor tor ALDA correlation contribution (default ’1d0’) | ||
+ | * **NOXC** can be set to ’NOXC≠0’ if no ALDA xc-contribution shall be added to the electron-electron interaction (which then corresponds to a standard direct RPA calculation) (default ’0’) | ||
+ | * **OMQUAD** set to ’1’ for Gauss-Chebyshev quadrature and ’2’ for Gauss-Legendre quadrature (default ’2’) | ||
+ | * **W0** parameter for Gauss-Legendre quadrature, see R. D. Amos //et al.//, //J. Phys. Chem.// **89** (1985) 2186 | ||
+ | * **L3ALPHA** logical flag to switch on calculation of coupling-strength dependent xc-kernel integrals (deactivated by default) | ||
+ | * **FXC2IDX** logical flag for performing a double density fitting approximation of the electron-electron interaction matrix (deactivated by default) | ||
+ | * **FXC2** a switch for various approaches to calculate the 2-index xc-kernel integrals (default ’1’) | ||
+ | * **THRDUM** threshold for density on dummy centre quadrature points (if set to a large value, the dummy centre quadrature points are skipped completely) (default ’0d0’) | ||
+ | * **SING** logical flag to enable handling of singularity of 2-index xc-kernel integrals, see also the following two options (enabled by default) | ||
+ | * **ESHIFT** corresponds to ϵ in f=1−ρ/(ρ+ϵ) (default: ’1d-5’) | ||
+ | * **FSCAL** corresponds to s in ρ=ρ+s⋅f (default ’1d-4’) | ||
+ | |||
+ | The ACFDT(ALDA) method is ill-defined for short electron-electron distances, see Ref. [4] and F. Furche and T. Van Voorhis, | ||
+ | |||
+ | * **SCAL** scaling factor for the RPA kernel (used for short electron-electron distances) (default ’1d0’) | ||
+ | * **MU** range-separation parameter. If not used, the program does not perform a correction for the short range electron-electron interaction. | ||
+ | |||
+ | For applying the correction as described in Ref. [4], the vaules of '' | ||
+ | |||
+ | The **ACFDT3** program implements an approximation to the ACFDT(ALDA) method assuming that the xc-kernel matrix depends linearly on the coupling strength (which is true for the exchange contribution but not, in general, for the correlation contribution to the kernel). Within this approximation the coupling-strength integration can be done analytically leading to a performance improvement over the **ACFDT** and **ACFDT2** programs. The options for **ACFDT3** are identical to the ones given above for **ACFDT** and **ACFDT2**. | ||
+ | |||
+ | |||
+ | ===== Random-phase approximation (RPATDDFT) program ===== | ||
+ | |||
+ | The random-phase approximation program ('' | ||
+ | |||
+ | List of the main keywords: | ||
+ | |||
+ | * **'' | ||
+ | Calculation of RPA correlation energies [1] (see options below) | ||
+ | * **'' | ||
+ | Calculation of dynamic dipole polarizabilities and C6 dispersion coefficients [10] (see options below) | ||
+ | * **'' | ||
+ | Calculation of excitation energies [11] (see options below) | ||
+ | * **'' | ||
+ | |||
+ | as well as contextual options (see later for an explanation on this): | ||
+ | |||
+ | * **'' | ||
+ | Number of quadrature points for the Gauss-Legendre numerical integration along the adiabatic connection for RPA calculations (default is 7). If '' | ||
+ | * **'' | ||
+ | Options for the numerical integration over the frequency variable of RPA calculations. '' | ||
+ | * **'' | ||
+ | |||
+ | and global options, shared by all commands inside the '' | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | Specify the exchange and correlation kernel for '' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | Calculation of RPA correlation energies '' | ||
+ | If no method is given, a '' | ||
+ | |||
+ | There are two main RPA // | ||
+ | |||
+ | There are four main // | ||
+ | |||
+ | Most variants+formulations can readily by used in a spin-unrestricted context [6]. This is implemented in the code and does not need any further input from the user: the RPA program recognizes the spin-unrestricted character of a SCF calculation that was done beforehand and acts accordingly. | ||
+ | |||
+ | Gradients of most of the RCCD-formulation RPA energies are available, both without range-separation with RHF orbitals and with range-separation with RSH orbitals [9]. The calculations are triggered by the presence of the keyword '' | ||
+ | |||
+ | The user can test the RPA program using '' | ||
+ | |||
+ | The keywords for the methods are constructed on the model: | ||
+ | |||
+ | '' | ||
+ | |||
+ | For the AC formulation, | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | For the DIEL formulation, | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | For the RCCD formulation, | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | For the PLASMON formulation, | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | Note that to all these keywords are associated energy variables defined as : | ||
+ | |||
+ | '' | ||
+ | |||
+ | (see the examples below). | ||
+ | |||
+ | Example of a dRPA-I calculation using the PBE functional: | ||
+ | |||
+ | < | ||
+ | {rks, | ||
+ | {rhf, | ||
+ | {rpatddft; | ||
+ | | ||
+ | | ||
+ | } | ||
+ | e=ECORR_DRPAI_AC | ||
+ | </ | ||
+ | Example of a range-separated RPAx-I calculation using the short-range PBE exchange-correlation functional and the range-separated parameter mu=0.5: | ||
+ | |||
+ | < | ||
+ | {int; | ||
+ | {rks, | ||
+ | {rpatddft; | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | Example of several RPA calculations in the same run: | ||
+ | |||
+ | < | ||
+ | {rhf, | ||
+ | {rpatddft; | ||
+ | | ||
+ | | ||
+ | } | ||
+ | e1=ECORR_DRPAI_AC | ||
+ | e2=ECORR_RPAXII_RCCD | ||
+ | e3=ECORR_DRPAI_DIEL | ||
+ | </ | ||
+ | (this way, the calculations are done with the same transformed integrals, //i.e.// without redoing the integral transformation). | ||
+ | |||
+ | Example of a dRPA-I gradient calculation: | ||
+ | |||
+ | < | ||
+ | {rks, | ||
+ | {rpatddft; | ||
+ | | ||
+ | | ||
+ | } | ||
+ | force | ||
+ | </ | ||
+ | Example of a geometry optimization at the LDA+dRPA-I level: | ||
+ | |||
+ | < | ||
+ | {int; | ||
+ | {rks, | ||
+ | {rpatddft; | ||
+ | | ||
+ | | ||
+ | } | ||
+ | optg | ||
+ | </ | ||
+ | Calculation of properties, excitation energies and oscillator strengths\\ | ||
+ | '' | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | The exchange density functionals (FUNCX) available are: | ||
+ | |||
+ | * **'' | ||
+ | |||
+ | The correlation density functionals (FUNCC) available are: | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | Example of a range-separated time-dependent density-functional theory calculation using the short-range LDA exchange-correlation functional and the range-separated parameter mu=0.5: | ||
+ | |||
+ | < | ||
+ | mu=0.5 | ||
+ | {int; | ||
+ | {rks, | ||
+ | {int} | ||
+ | {setmu,mu} | ||
+ | {rpatddft; | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | Example of a TDHF-TDA calculation with writing of several files for interfacing with a real-time propagation code (see Ref. [14]): | ||
+ | |||
+ | < | ||
+ | {rpatddft; | ||
+ | integral,1; | ||
+ | writefile, | ||
+ | orb,2330.2; | ||
+ | excit, | ||
+ | NOSPINBLOCK; | ||
+ | tda} | ||
+ | </ | ||
+ | The files are: '' | ||
+ | |||
+ | References\\ | ||
+ | [1] J. G. Ángyán, R.-F. Liu, J. Toulouse, and G. Jansen, [[https:// | ||
+ | [2] G. Jansen, B. Mussard, D. Rocca, J. G. Ángyán (in prep).\\ | ||
+ | [3] J. Toulouse, W. Zhu, A. Savin, G. Jansen, and J. G. Ángyán, [[https:// | ||
+ | [4] F. Furche, [[https:// | ||
+ | [5] J. Toulouse, I. C. Gerber, G. Jansen, A. Savin, and J. G. Ángyán, [[https:// | ||
+ | [6] B. Mussard, P. Reinhardt, J. G. Ángyán, and J. Toulouse, J. Chem. Phys. (submitted).\\ | ||
+ | [7] Heßelmann, A., Görling, A., [[https:// | ||
+ | [8] Heßelmann, A., [[https:// | ||
+ | [9] B. Mussard, P. G. Szalay, J. G. Ángyán, [[https:// | ||
+ | [10] J. Toulouse, E. Rebolini, T. Gould, J. F. Dobson, P. Seal, J. G. Ángyán, [[https:// | ||
+ | [11] E. Rebolini, A. Savin, J. Toulouse, [[https:// | ||
+ | [12] J. Toulouse, A. Savin, and H.-J. Flad, Int. J. Quantum Chem. **100**, 1047 (2004).\\ | ||
+ | [13] S. Paziani, S. Moroni, P. Gori-Giorgi, | ||
+ | [14] E. Coccia, B. Mussard, M. Lebeye, J. Caillat, R. Taieb, J. Toulouse, and E. Luppi, [[https:// | ||
+ | |||
+ | |||
+ | ===== RIRPA program ===== | ||
+ | |||
+ | The RIRPA and URIRPA programs allow non-self-consistent spin-restricted and spin-unrestricted resolution of identity (RI) random phase approximation (RPA) [1-3] and σ-functional [4-6] calculations. These methods should be used in conjunction with conventional Kohn-Sham (KS) density functional theory (DFT) calculations, | ||
+ | |||
+ | **Bibilography: | ||
+ | **RPA:**\\ | ||
+ | [1] F. Furche, [[https:// | ||
+ | [2] A. Heßelmann and A. Görling, [[https:// | ||
+ | [3] X. Ren, P. Rinke, C. Joas, and M. Scheffler, [[https:// | ||
+ | **σ-functionals: | ||
+ | [4] E. Trushin, A. Thierbach, A. Görling, [[https:// | ||
+ | [5] S. Fauser, E. Trushin, C. Neiss, A. Görling, [[https:// | ||
+ | [6] C. Neiss, S. Fauser, A. Görling, [[https:// | ||
+ | **Other papers cited in the documentation: | ||
+ | [7] E. Trushin, A. Görling, [[https:// | ||
+ | |||
+ | We kindly ask you to cite the original publications of the corresponding methods in the publications that result from these programs. | ||
+ | |||
+ | Example input file for spin-restricted calculations for the CO molecule: | ||
+ | <code - examples/ | ||
+ | gthresh, | ||
+ | gdirect ! integral-direct mode | ||
+ | |||
+ | basis={ | ||
+ | default, | ||
+ | set,ri; default, | ||
+ | } | ||
+ | |||
+ | symmetry, | ||
+ | |||
+ | angstrom | ||
+ | geometry={ | ||
+ | 2 | ||
+ | |||
+ | C 0.000000 0.000000 -0.646514 | ||
+ | O 0.000000 0.000000 0.484886 | ||
+ | } | ||
+ | |||
+ | df-ks, | ||
+ | {cfit, | ||
+ | |||
+ | acfd;rirpa ! RPA/ | ||
+ | </ | ||
+ | As well as an example of spin-unrestricted calculation for the NH< | ||
+ | <code - examples/ | ||
+ | gthresh, | ||
+ | gdirect ! integral-direct mode | ||
+ | |||
+ | basis={ | ||
+ | default, | ||
+ | set,ri; default, | ||
+ | } | ||
+ | |||
+ | symmetry, | ||
+ | |||
+ | angstrom | ||
+ | geometry={ | ||
+ | 3 | ||
+ | |||
+ | N 0.000000 0.000000 0.142235 | ||
+ | H 0.000000 0.800646 -0.497821 | ||
+ | H 0.000000 -0.800646 -0.497821 | ||
+ | } | ||
+ | |||
+ | spin=1 | ||
+ | |||
+ | df-uks, | ||
+ | {cfit, | ||
+ | |||
+ | acfd;urirpa ! RPA/ | ||
+ | </ | ||
+ | The following options are available for the RIRPA and URIRPA programs:\\ | ||
+ | * **orb** record number containing the orbital coefficients, | ||
+ | * **dfit** logical flag to enable density fitting during the reference energy calculation (default: ’1’)\\ | ||
+ | * **sigma** logical flag to enable σ-functional calculation (default: ’1’)\\ | ||
+ | * **sigma_param** string containing a name for the parametrization used (default depends on exchange-correlation functional used in preceding DFT calculation: | ||
+ | * **write_sigma** logical flag to enable writing of sigma.dat file with reference energy, frequency integration weights and σ-values (default: ’0’)\\ | ||
+ | * **thr_overlap_ri** threshold for processing RI basis according to Section IIB2 in Ref. [7] (default: ‘1d-99’)\\ | ||
+ | * **thr_fai_ri** threshold for processing RI basis according to Section IIB5 in Ref. [7] (default: ‘1d-14’)\\ | ||
+ | * **thr_rpa** threshold for throwing out contributions corresponding to small eigenvalue differences during construction of the response function (default: ‘1d-6’)\\ | ||
+ | * **nquadint** number of logarithmically spaced intervals for frequency integration (default ‘1’)\\ | ||
+ | * **nquad** number of points per interval for frequency integration (default ' | ||
+ | * **w0** scaling factor for the rational function mapping the Gauss–Legendre quadrature for the interval [−1, 1] to the interval [0, ∞], see Eqs. 37-38 in Ref. [4] for details (default: ‘2.5’)\\ | ||
+ | * **vc_scal** scaling factor for the Coulomb kernel, which can be used to mimic the effect of the inclusion of the exact-exchange kernel. In the special case of non-spin-polarized two-electron systems, the RPA calculation with a Coulomb kernel scaled by 1/2 is equivalent to including of the exact-exchange kernel. Implemented only in RIRPA (default: ‘1d0’)\\ | ||
+ | * **verb** determines the level of verbosity in the output file, integer values of 0, 1, 3 provide different levels of verbosity (default ’0’) |