Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
the_density_functional_program [2026/02/23 19:55] – [Angular integration grid (ANGULAR)] hesselmannthe_density_functional_program [2026/04/17 18:29] (current) – [Rangehybrid methods (RANGEHYBRID)] hesselmann
Line 102: Line 102:
  
 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.
Line 111: Line 137:
 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:
Line 120: Line 146:
 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>
Line 134: Line 160:
 </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].\\
Line 142: Line 171:
 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>