| Both sides previous revision Previous revision Next revision | Previous revision |
| the_density_functional_program [2026/02/17 09:39] – [Numerical integration grid control (GRID)] hesselmann | the_density_functional_program [2026/04/17 18:29] (current) – [Rangehybrid methods (RANGEHYBRID)] hesselmann |
|---|
| |
| Then sr-DFT/lr-HF calculations can be performed by calling the RKS program with the additional subcommand ''rangehybrid''. Available short-range functionals are ''exerf'' and ''ecerf'' for sr-LDA, and ''exerfpbe'' and ''ecerfpbe'' for sr-PBE; as usual, the functionals have to be specified after the ''rks'' command (e.g. ''%%rks,exerf,ecerf;%%''). The underlying short-range LDA correlation functional is that of S. Paziani, S. Moroni, P. Gori-Giorgi, G.B. Bachelet, [[https://dx.doi.org/10.1103/PhysRevB.73.155111|Phys. Rev. B]] **73**, 155111 (2006). | Then sr-DFT/lr-HF calculations can be performed by calling the RKS program with the additional subcommand ''rangehybrid''. Available short-range functionals are ''exerf'' and ''ecerf'' for sr-LDA, and ''exerfpbe'' and ''ecerfpbe'' for sr-PBE; as usual, the functionals have to be specified after the ''rks'' command (e.g. ''%%rks,exerf,ecerf;%%''). The underlying short-range LDA correlation functional is that of S. Paziani, S. Moroni, P. Gori-Giorgi, G.B. Bachelet, [[https://dx.doi.org/10.1103/PhysRevB.73.155111|Phys. Rev. B]] **73**, 155111 (2006). |
| | |
| | Moreover, range-separated KS calculations can also be performed using functionals from the [[the_density_functional_program#libxc_functionals|LibXC library]], including the CAM-B3LYP functional (''HYB_GGA_XC_CAM_B3LYP'') and the $\omega$B97X functional (''HYB_GGA_XC_WB97X''). When using those functionals parameters for the range-separation parameter ''MU'' as well as the short- and long-range intrection factors (''SRFAC'' and ''LRFAC'') do not need to be explicitly entered in the input but are taken from the LibXC internal database instead. There are several ways to overwrite these via user input as shown for the CAM-B3LYP functional in the following example: |
| | |
| | <code> |
| | !no explicit parameter input |
| | ks,HYB_GGA_XC_CAM_B3LYP |
| | |
| | !pass parameters to integral program |
| | {int; ERFLERFC,mu=0.33,srfac=0.19,lrfac=0.65} |
| | {ks,HYB_GGA_XC_CAM_B3LYP} |
| | |
| | !pass parameters as DFT options |
| | {ks,HYB_GGA_XC_CAM_B3LYP,mu=0.33,srfac=0.19,lrfac=0.65} |
| | |
| | !density-fitting case: no explicit parameter input |
| | {df-ks,HYB_GGA_XC_CAM_B3LYP} |
| | |
| | !now use modified parameters in the integral program |
| | {int; ERFLERFC,mu=0.2,srfac=0.23,lrfac=0.8} |
| | ks,HYB_GGA_XC_CAM_B3LYP |
| | |
| | !or as an option to KS (in which case the integral program will be automatically executed with the new settings) |
| | {ks,HYB_GGA_XC_CAM_B3LYP,mu=0.2,srfac=0.23,lrfac=0.8} |
| | </code> |
| | |
| | When using any of Molpro's internal range-separated functionals instead (including ''EXERFPBE'', ''ECERFPBE'', ''SRB88'', ''SRLYP'', ''EXERF'', ''ECERF'' and more) the following default values for the underlying parameters will be used if no input is made to change them: ''MU''=0.5, ''SRFAC''=0.0, ''LRFAC''=1.0. Note that changing the parameters will only work locally for the respective calculation, but Molpro will reset to the default again if a successive RS DFT calculation is done without specifying the parameters on the input. |
| |
| Finally, sr-DFT/lr-post-HF calculations can be done by adding, within a call of the chosen post-HF program, two subcommands: ''srxcdft'' followed by the desired short-range functionals (e.g. ''%%srxcdft,exerf,ecerf;%%''), and ''dftden'' followed by the record number from which the density for the sr functionals is taken. Implementations are available for ''ci'', ''mp2'', ''ccsd'', ''%%ccsd(t)%%'', ''rpatddft'', and the corresponding local MP2 and CC methods w/wo density-fitting. | Finally, sr-DFT/lr-post-HF calculations can be done by adding, within a call of the chosen post-HF program, two subcommands: ''srxcdft'' followed by the desired short-range functionals (e.g. ''%%srxcdft,exerf,ecerf;%%''), and ''dftden'' followed by the record number from which the density for the sr functionals is taken. Implementations are available for ''ci'', ''mp2'', ''ccsd'', ''%%ccsd(t)%%'', ''rpatddft'', and the corresponding local MP2 and CC methods w/wo density-fitting. |
| mu=0.46 | mu=0.46 |
| lambda=0.58 | lambda=0.58 |
| {int;erflerfc,mu=$mu,srfac=$lambda} | {int; erflerfc,mu=$mu,srfac=$lambda} |
| {rks,exsrlpbe,ecsqrtlpbe;rangehybrid;orbital,7000.2} | {rks,exsrlpbe,ecsqrtlpbe;rangehybrid;orbital,7000.2} |
| {mp2;srxcdft,exsrlpbe,ecsqrtlpbe;dftden,7000.2} | {mp2; srxcdft,exsrlpbe,ecsqrtlpbe;dftden,7000.2} |
| </code> | </code> |
| Example of a RSDH calculation with the approximation 4 of Ref. [1] for the short-range density functional: | Example of a RSDH calculation with the approximation 4 of Ref. [1] for the short-range density functional: |
| mu=0.62 | mu=0.62 |
| lambda=0.60 | lambda=0.60 |
| {int;erflerfc,mu=$mu,srfac=$lambda} | {int; erflerfc,mu=$mu,srfac=$lambda} |
| {ks,exerfpbe,ecerfpbe;rangehybrid;dsrsdh;orbital,7000.2} | {ks,exerfpbe,ecerfpbe; rangehybrid; dsrsdh; orbital,7000.2} |
| mp2 | mp2 |
| </code> | </code> |
| </code> | </code> |
| |
| which corresponds to the interaction operator $\mbox{lr}\cdot\frac{\mbox{erf}(\mu r_{12})}{r_{12}} + \mbox{sr}\cdot\frac{\mbox{erfc}(\mu r_{12})}{r_{12}}$. Setting ''lr=1'' and ''sr=1'' would | which corresponds to the interaction operator $\mbox{lr}\cdot\frac{\mbox{erf}(\mu r_{12})}{r_{12}} + \mbox{sr}\cdot\frac{\mbox{erfc}(\mu r_{12})}{r_{12}}$. Setting ''lr=1'' and ''sr=1'' would therefore mean that Molpro will calculate the full-range Coulomb integrals. |
| therefore mean that Molpro will calculate the full-range Coulomb integrals. | |
| | |
| | |
| |
| The MP2 calculation can also be replaced by a RPA calculation, like in the RS2H+RPAxSO2 method of Ref. [2].\\ | The MP2 calculation can also be replaced by a RPA calculation, like in the RS2H+RPAxSO2 method of Ref. [2].\\ |
| mu=0.48 | mu=0.48 |
| lambda=0.34 | lambda=0.34 |
| {int;erflerfc,mu,lambda} | {int; erflerfc,mu,lambda} |
| {rks,exsrlpbe,ecsqrtlpbe;rangehybrid;orbital,7000.2} | {rks,exsrlpbe,ecsqrtlpbe; rangehybrid; orbital,7000.2} |
| {rpatddft;ecorr,SO2-RCCD;orb,7000.2} | {rpatddft; ecorr,SO2-RCCD;orb,7000.2} |
| </code> | </code> |
| |
| |
| All grid parameters that are modified through the options and directives of the ''GRID'' program are changed globally, i.e., any subsequent program using a quadrature grid in Molpro will use the grid determined by GRID unless they use any local redefinitions of grid parameters. Alternatively, any available | All grid parameters that are modified through the options and directives of the ''GRID'' program are changed globally, i.e., any subsequent program using a quadrature grid in Molpro will use the grid determined by GRID unless they use any local redefinitions of grid parameters. Alternatively, any available |
| options for ''GRID'' can be used within the ''KS'' program: | options for ''GRID'' (but not directives that require multiple input values) can be used within the ''KS'' program: |
| |
| <code> | <code> |
| {{:xcgrid.png?nolink&50|}}The maximum allowed angular order is set by the row in the periodic table: ''GRID,name=PRUNED,max_l=[Row1,Row2,Row3,Row4+]''. The default value is [53,53,53,53]. Additionally, the minimum angular order can be set: ''GRID,name=PRUNED,min_l=[Row1,Row2,Row3,Row4+]''. The default value is [3,3,3,3]. This minimum is also modified to be at least $2*l+1$ where $l$ is the maximum angular momentum of the basis set. | {{:xcgrid.png?nolink&50|}}The maximum allowed angular order is set by the row in the periodic table: ''GRID,name=PRUNED,max_l=[Row1,Row2,Row3,Row4+]''. The default value is [53,53,53,53]. Additionally, the minimum angular order can be set: ''GRID,name=PRUNED,min_l=[Row1,Row2,Row3,Row4+]''. The default value is [3,3,3,3]. This minimum is also modified to be at least $2*l+1$ where $l$ is the maximum angular momentum of the basis set. |
| |
| //crowd// is a parameter to control the reduction of the degree of quadrature close to the nucleus, where points would otherwise be unnecessarily close together; larger values of crowd mean less reduction thus larger grids. A very large value of this parameter, or, conventionally, setting it to zero, will switch off this feature. {{:dftgrid.png?nolink&50|}} | //crowd// is a parameter to control the reduction of the degree of quadrature close to the nucleus, where points would otherwise be unnecessarily close together; larger values of crowd mean less reduction thus larger grids. A very large value of this parameter, or, conventionally, setting it to zero, will switch off this feature. The exact formula used for capping the $L_\mathrm{max}$ value at a radial point $r_i$ for an atom with a Bragg radius of $R^\mathrm{Bragg}$ is $L_\mathrm{max}=min(L_\mathrm{max},max(L_\mathrm{min},min((crowd*r_i/R^\mathrm{Bragg})*(L_\mathrm{max}+1),10^6)-1))$. {{:dftgrid.png?nolink&50|}} |
| |
| //acca// is a target energy accuracy. It is used to reduce $l$ for a given radial point as far as possible below $l^{\text{max}}_i$ but not lower than $l^{\text{max}}_i$. The implementation uses the error in the angular integral of the kernel of a model functional using a sum of approximate atomic densities. If //acca// is zero, the global threshold is used instead, or else it is ignored. | //acca// is a target energy accuracy. It is used to reduce $l$ for a given radial point as far as possible below $l^{\text{max}}_i$ but not lower than $l^{\text{max}}_i$. The implementation uses the error in the angular integral of the kernel of a model functional using a sum of approximate atomic densities. If //acca// is zero, the global threshold is used instead, or else it is ignored. |