Table of Contents

Symmetry-adapted intermolecular perturbation theory

Introduction

The SAPT (symmetry-adapted intermolecular perturbation theory) program calculates the total interaction energy between closed-shell molecules as a sum of individual first and second order interaction terms, namely electrostatic $E_{\text{pol}}^{(1)}$, induction $E_{\text{ind}}^{(2)}$ and dispersion $E_{\text{disp}}^{(2)}$ accompanied by their respective exchange counterparts ($E_{\text{exch}}^{(1)}$, $E_{\text{exch-ind}}^{(2)}$ and $E_{\text{exch-disp}}^{(2)}$). The latter ones arise due to electron exchange between the monomers when the molecules are close to each other and are sometimes denoted as Pauli repulsion. Since all above terms are accessible through density matrices and static and dynamic density-density response functions of the monomers, in principle (see section high order terms) no calculation of the dimer wave function is required. Therefore SAPT is free from the basis set superposition error which occurs in the supermolecular approach.

References:

General Symmetry-adapted perturbation theory and many-body SAPT:
$[1]$ B. Jeziorski, R. Moszynski and K. Szalewicz, Chem. Rev. 94, 1887. (1994).
DFT-SAPT:
$[2]$ G. Jansen and A. Heßelmann, J. Phys. Chem. A 105, 646 (2001).
$[3]$ A. Heßelmann and G. Jansen, Chem. Phys. Lett. 357, 464 (2002).
$[4]$ A. Heßelmann and G. Jansen, Chem. Phys. Lett. 362, 319 (2002).
$[5]$ A. Heßelmann and G. Jansen, Chem. Phys. Lett. 367, 778 (2003).
$[6]$ A. Heßelmann and G. Jansen, Phys. Chem. Chem. Phys. 5, 5010 (2003).
Density fitting DFT-SAPT (DF-DFT-SAPT):
$[7]$ A. Heßelmann, G. Jansen and M. Schütz, J. Chem. Phys. 122, 014103 (2005).

Density fitting DFT-SAPT for arbitrary monomer basis sets (DFSAPT):
$[8]$ A. Heßelmann and T. Korona, J. Chem. Phys. 141, 094107 (2014).

DFT-SAPT employing exact-exchange response kernels (EXX-SAPT):
$[9]$ A. Heßelmann, J. Chem. Theory Comput. 14, 1943 (2018)

Single-determinant-based SAPT without single-exchange approximation:
$[10]$ R. Schäffer and G. Jansen, Theor. Chem. Acc. 131 (2012) 1235
$[11]$ R. Schäffer and G. Jansen, Mol. Phys. 111, 2570 (2013)

SAPT with regularised nuclear attraction integrals:
$[12]$ A. J. Misquitta, J. Chem. Theory Comput. 9, 5313 (2013)

(See also:
K. Szalewicz, K. Patkowski and B. Jeziorski, Struct. Bond 116, 43 (2005)
K. Szalewicz, WIREs Comput. Mol. Sci. 2, 254 (2011)
and references therein for a related approach to DFT-SAPT termed SAPT(DFT))

First example

A typical input for SAPT has the following form:

r=5.6
geometry={nosym; he1; he2,he1,r}
basis=avqz

!wf records
ca=2101.2
cb=2102.2

!monomer A
dummy,he2
{hf; save,$ca}
sapt;monomerA

!monomer B
dummy,he1
{hf; start,atdens; save,$cb}
sapt;monomerB

!interaction contributions
sapt;intermol,ca=$ca,cb=$cb

Here the sapt;monomerA/B store some informations about the two monomers which are needed in the subsequent SAPT calculation invoked by sapt;intermol. The individual interaction energy terms are stored (in millihartree) in distinct variables and may be collected in arrays for producing potential energy surfaces. For example the input

geometry={nosym; he1; he2,he1,r}
basis=avtz

!wf records
ca=2101.2
cb=2102.2

!distances
dist=[4.5,5.0,5.5,5.6,6.0,6.5,7.0]

do i=1,#dist
   r=dist(i)

   !monomer A
   dummy,he2
   {hf; save,$ca}
   sapt;monomerA

   !monomer B
   dummy,he1
   {hf; start,atdens; save,$cb}
   sapt;monomerB

   !interaction contributions
   sapt;intermol,ca=$ca,cb=$cb

   elst(i)=E1pol;  exch(i)=E1ex
   ind(i)=E2ind;   exind(i)=E2exind
   disp(i)=E2disp; exdisp(i)=E2exdisp
   etot(i)=E12tot

   data,truncate,$ca
enddo

{table,dist,elst,exch,ind,exind,disp,exdisp,etot
ftyp,d,d,d,d,d,d,d,d,d
plot}

yields the plot

Currently SAPT only accepts single-determinant wave functions for the monomers, i.e. from Hartree-Fock or Kohn-Sham DFT (see next section) calculations. This means that if Hartree-Fock wave functions are used for monomer, the following quantity is obtained (zero in superscript denotes that no intramonomer correlation is accounted for) [1]. $$\begin{aligned} E_{\text{SAPT}}=E^{(10)}_{\text{pol}}+E^{(10)}_{\text{exch}}+ E^{(20)}_{\text{ind,resp.}}+ E^{(20)}_{\text{exch-ind,resp.}}+E^{(20)}_{\text{disp}}+ E^{(20)}_{\text{exch-disp}}\end{aligned}$$ No point group symmetry can be exploited in a SAPT calculation.

DFT-SAPT

It is of crucial importance to account for the intramolecular correlation effects of the individual SAPT terms since Hartree-Fock theory often yields poor first- and second-order electrostatic properties. While this can be done using many-body perturbation theory [1] (in a double perturbation theory ansatz) a more efficient way is to use static and time-dependent DFT theory. This variant of SAPT, termed as DFT-SAPT [2-6], has in contrast to Hartree-Fock-SAPT the appealing feature that the polarisation terms ($E_{\text{pol}}^{(1)}$, $E_{\text{ind}}^{(2)}$, $E_{\text{disp}}^{(2)}$) are potentially exact, i.e. they come out exactly if the exact exchange-correlation (xc) potential and the exact (frequency-dependent) xc response kernel of the monomers were known. On the other hand, this does not hold for the exchange terms since Kohn-Sham theory can at best give a good approximation to the exact density matrix of a many-body system. It has been shown [6] that this is indeed the the case and therefore DFT-SAPT has the potential to produce highly accurate interaction energies comparable to high-level supermolecular many-body perturbation or coupled cluster theory. However, in order to achieve this accuracy, it is of crucial importance to correct the wrong asymptotic behaviour of the xc potential in current DFT functionals [3-5]. This can be done by using e.g.:

{ks,lda; asymp,<shift>}

which activates the gradient-regulated asymptotic correction approach of Grüning et al. (J. Chem. Phys. 114, 652 (2001)) for the respective monomer calculation. The user has to supply a shift parameter ($\Delta_{\text{xc}}$) for the bulk potential which should approximate the difference between the HOMO energy ($\varepsilon_{\text{HOMO}}$) obtained from the respective standard Kohn-Sham calculation and the (negative) ionisation potential of the monomer ($\mathrm{IP}$): $$\Delta_{\text{xc}}=\varepsilon_{\text{HOMO}}-(-\mathrm{IP})$$ This method accounts for the derivative discontinuity of the exact xc-potential and that is missing in approximate ones. Note that this needs to be done only once for each system. (See also section DFT-SAPT calculation of the NeAr dimer using the delta-HF correction for an explicit example).

It is also possible to use an alternative asymptotic correction method described in Ref. [9] by using the EXX program (see section optimised Effective Potential (OEP) method). Here, the derivative discontinuity shift is determined through an interpolation between the HOMO energy of the EXX method and the HOMO energy of a corresponding hybrid functional. Currently, this technique should only be used in conjuction with hybrid methods employing 25% exact exchange.

Concerning the more technical parameters in the DFT monomer calculations it is recommended to use lower convergence thresholds and larger intergration grids compared to standard Kohn-Sham calculations.

High order terms

It has been found that third and higher-order terms become quite important if one or both monomers are polar. As no higher than second-order terms are currently implemented in SAPT, one may use a non-correlated estimation of those terms by using supermolecular Hartree-Fock (see e.g. [7]). This can be done by adapting the following template:

!dimer
hf
edm=energy

!monomer A
dummy,<monomer2>
{hf; save,$ca}
ema=energy
sapt;monomerA

!monomer B
dummy,<monomer1>
{hf; start,atdens; save,$cb}
emb=energy
sapt;monomerB

!interaction contributions
sapt,sapt_level=2;intermol,ca=$ca,cb=$cb

esup=(edm-ema-emb)*1000. mH
dHF=esup-e1pol-e1ex-e2ind-e2exind

which stores the resulting $\delta$(HF) term in dHF.

Exchange interaction energies with infinite expansion in the intermolecular overlap

The exchange interaction energies are commonly expanded in powers of the intermolecular overlap $S$: $$\begin{aligned} E_{\text{exch}}^{(1)}(S^\infty)&=&E_{\text{exch}}^{(1)}(S^2)+\Delta E_{\text{exch}}^{(1)}(S^4) +\Delta E_{\text{exch}}^{(1)}(S^6)\dots \\ E_{\text{exch-ind}}^{(2)}(S^\infty)&=&E_{\text{exch-ind}}^{(2)}(S^2)+\Delta E_{\text{exch-ind}}^{(2)}(S^4) +\Delta E_{\text{exch-ind}}^{(2)}(S^6)+\dots \\ E_{\text{exch-disp}}^{(2)}(S^\infty)&=&E_{\text{exch-disp}}^{(2)}(S^2)+\Delta E_{\text{exch-disp}}^{(2)}(S^4) +\Delta E_{\text{exch-disp}}^{(2)}(S^6)+\dots \\\end{aligned}$$ where $E_{\text{exch}}^{(1)}(S^2)$ corresponds to the exchange interaction energy in which the intermolecular overlap occurs only in single and quadratic powers and $\Delta E_{\text{exch}}^{(1)}(S^4)$ collects all terms up to the fourth power in $S$ excluding the terms in $E_{\text{exch}}^{(1)}(S^2)$. The above expansions are commonly truncated after the first terms, leading to the so-called $S^2$ approximation. Accordingly, for very small distances of the monomers, the exchange interaction energies become inaccurate and eventually the $S^2$ approximation may even break down, see Refs. [10,11].

While this problem may be circumvented by adding the $\delta$(HF) term to the SAPT interaction energy (see section high order terms), a derivation of the infinite expansions of the first-order exchange energy was given by Jeziorski, Bulski and Piela (Int. J. Quantum Chem. 10 (1976) 281). More recently, formulas for the second-order exchange induction and dispersion energies were derived by Schäffer and Jansen, see Refs. [10,11].

In Molpro, the calculation of the exchange interaction energies in the $S^2$ approximation or with an infinite expansion in $S$ ($S^\infty$) can be controlled through the switch

   sapt,sinf=<0,1,2>

where sinf=0 will calculate the exchange interaction energies within the $S^2$ approximation and sinf=1 calls the routines to calculate all exchange interaction terms with infinite overlap expansion ($S^\infty$). Using sinf=2 will calculate both the $S^2$ and the $S^\infty$ contributions. Note that the first-order exchange energy is always calculated in both variants.

Using exact exchange Kohn-Sham response kernels

The exact exchange Kohn-Sham response kernel can be used in the computations of the second order (exchange-)induction and (exchange-)dispersion contributions, see Ref. [9]. In order to do so, the $\langle i|v_x^{\text{NL}}-v_x|j\rangle$ matrix elements have to be precomputed for each monomer and supplied to the SAPT program. The following input template shows how to compute DFT-SAPT interaction energy contributions using the (A)TDEXX response kernels and the LPBE0AC xc potentials (cf section optimised Effective Potential (OEP) method):

dummy,<atoms on B> !monomer A
{ks,lda; save,2100.2; start,atdens}
{exxhyb,orb=2100.2,oep=7,homo=1,charge=1,maxit=30,scfthr=1d-9,add=1,xfac=0.25,shift=1
func,pbex,pbec; dftfac,0.75,1.0}
{oep,orb=2101.2,vxdiff=5100.2,gamma=3d-4,dfit=1,homo=1}
{sapt;monomerA}

dummy,<atoms on A> !monomer B
{ks,lda; save,2200.2; start,atdens}
{exxhyb,orb=2200.2,oep=7,homo=1,charge=1,maxit=30,scfthr=1d-9,add=1,xfac=0.25,shift=1
func,pbex,pbec; dftfac,0.75,1.0}
{oep,orb=2201.2,vxdiff=5200.2,gamma=3d-4,dfit=1,homo=1}
{sapt;monomerB}

sapt;intermol,ca=2101.2,cb=2201.2,icpks=0,vxdiffA=5100.2,vxdiffB=5200.2,\
     nlexfac=1.0,tdexx=<TDEXXMODE>

The input parameter TDEXXMODE takes the values 1 or 2. With TDEXXMODE=1 the full nonadiabatic TDEXX response kernel and with TDEXXMODE=2 only the adiabatic TDEXX response kernel is used in the calculation of the response matrices of the monomers. Notice also from the above template that it is important to set nlexfac=1.0 which sets the scaling factor of exact exchange in the SAPT program. If nlexfac is set to a value lower than one, a hybrid ALDA-TDEXX kernel will be used in the calculation. All reported calculations using this program should cite Ref. [9].

Note that unlike in the conventional hybrid-DFT case, DFT-SAPT calculations can be performed also using density fitting techniques for (A)TDEXX kernels with Molpro. A corresponding efficient DF implementation which works in conjunction with (A)TDEXX kernels is the DFSAPT program, see section DFSAPT: a density-fitting DFT-SAPT program for arbitrary monomer basis sets.

SAPT with regularised nuclear attraction integrals

The SAPT expansion of the intermolecular interaction energy does not yield the charge-transfer (CT) interaction energy as a separate term, rather it is included in the sum of the second-order induction and exchange-induction energies: $$E_{\text{int}}^{\text{CT}} \subset E_{\text{ind}}^{(2)}+E_{\text{exch-ind}}^{(2)}$$ Due to Misquitta, see Ref. [12], the CT interaction energy can, however, be ’estimated’ by using a regularised nuclear attraction potential for the monomers in order to calculate (exchange-)induction energies excluding the (short-ranged) CT interaction contribution. The CT interaction energy can then be obtained by calculating the difference between the full (exchange-)induction interaction energy and the (exchange-)induction interaction energy as obtained by the regularised SAPT method: $$E_{\text{int}}^{\text{CT}} \approx E_{\text{ind}}^{(2)}+E_{\text{exch-ind}}^{(2)} -E_{\text{ind}}^{(2)}[regul]-E_{\text{exch-ind}}^{(2)}[regul]$$ For obtaining regularised nuclear attraction integrals Misquitta proposes the form [12]: $$V_{\text{regul}}=\frac{1}{r}\Big(1-e^{-\alpha r^2}\Big)$$ with $\alpha=3.0$.

In Molpro, regularised SAPT calculations can be performed by calling the vreg module ’before’ saving the monomer geometries with {sapt; monomerA,B}. An input template for the calculation of the CT interaction energy is given by:

dummy,<monomer B centres>
{ks,<functional>; orbital,2100.2}
{sapt;monomerA}

dummy,<monomer A centres>
{ks,<functional>; start,atdens; orbital,2200.2}
{sapt;monomerB}

sapt,sapt_level=2;intermol,ca=2100.2,cb=2200.2,icpks=0
eIND1=e2ind+e2exind

dummy,<monomer B centres>
vreg,alpha=3d0,nq=1
{sapt;monomerA}

dummy,<monomer A centres>
vreg,alpha=3d0,nq=1
{sapt;monomerB}

sapt,sapt_level=2;intermol,ca=2100.2,cb=2200.2,icpks=0
eIND2=e2ind+e2exind

eint_CT=eIND1-eIND2

The vreg module accepts the following options:

The regularised SAPT can also be used in order to resolve the breakdown of the conventional SAPT expansion for the interaction between heavy atoms, see, e.g., Liu et al., J. Chem. Theory Comput. 7, 2399 (2011). A regularised SAPT method was, e.g., used in T. Clark, A. Heßelmann, Phys. Chem. Chem. Phys. 20, 22849 (2018) for calculating the bonding between carbon tetrahalides and halide anions. Note that in this case the addition of the $\delta$(HF) term (see section high order terms) for taking into account short-ranged polarisation effects is crucial.

Density fitting

In order to be able to study interactions between extended monomers one can use density fitting to approximate the integrals in SAPT [7]. For this one may use the input:

{sapt;intermol,ca=$ca,cb=$cb,fitlevel=3
dfit,basis_coul=jkfit,basis_exch=jkfit,basis_mp2=mp2fit,cfit_scf=3}

with in the basis section defined jkfit and mp2fit fitting basis sets (see section density fitting).

Currently only ALDA or (A)TDEXX xc-kernels are implemented for the case SAPT_LEVEL=3 and SAPT_FITLEVEL=3. This means that a corresponding SAPT calculation would be uncompatible with (conventional) hybrid-DFT monomer orbitals/orbital energies. Therefore it is recommended to use nonhybrid functionals in the case the dispersion/exchange-dispersion energy terms are requested in a DF-DFT-SAPT run. Another possibility is to localise the xc-potential via, e.g., the OEP method (see section exact exchange Kohn-Sham methods and the example in section DF-DFT-SAPT calculation of the NeAr dimer using the delta-HF correction).

New density fitting routines for the calculation of $E^{(2)}_{\text{IND}}(S^\infty)$ and $E^{(2)}_{\text{DISP}}(S^\infty)$ can be activated with the switch

 sapt,df2=.true.,...

For performing density-fitting DFT-SAPT calculations with arbitrary monomer basis sets see section DFSAPT: a density-fitting DFT-SAPT program for arbitrary monomer basis sets.

SAPT with ECP’s

If effective core potentials (ECP’s) are used in the monomer calculations, it is important to add the $\delta$(HF) term to the SAPT interaction energy (see K. Patkowski, K. Szalewicz, J. Chem. Phys. 127, 164103 (2007)). For examples for the calculation of $\delta$(HF) see sections high order terms and examples.

Examples

HF-SAPT calculation of the H2O dimer using the delta-HF correction

examples/h2odimer_sapt_hf.inp
gthresh,energy=1.d-8,orbital=1.d-8,grid=1.d-8
symmetry,nosym
orient,noorient
GEOMETRY={
1,O1,,0.00000000,0.00000000,0.00000000
2,H1,,0.00000000,0.00000000,1.83606000
3,H2,,1.77604000,0.00000000,-0.4656040
4,O2,,-0.6605540,0.00000000,5.54064000
5,H3,,-1.6582100,-1.4536300,6.05324000
6,H4,,-1.6582100,1.45363000,6.05324000
}
basis=avdz

!sapt files
ca=2101.2
cb=2102.2

!dimer
hf
edm=energy

!monomer A
dummy,o2,h3,h4
{hf; save,$ca}
ema=energy
{sapt;monomerA}

!monomer B
dummy,o1,h1,h2
{hf; start,atdens; save,$cb}
emb=energy
{sapt;monomerB}

!interaction contributions
{sapt,SAPT_LEVEL=3;intermol,ca=$ca,cb=$cb,icpks=1}

!HF supermolecular interaction energy and delta(HF) contribution
eint_hf=(edm-ema-emb)*1000 mH
delta_hf=eint_hf-e1pol-e1ex-e2ind-e2exind

!add E2disp + E2exch-disp to HF interaction energy
eint_sapt=eint_hf+e2disp+e2exdisp

DFT-SAPT calculation of the NeAr dimer using the delta-HF correction

examples/near_sapt_acdft.inp
gthresh,energy=1.d-8,orbital=1.d-8,grid=1.d-8
symmetry,nosym
orient,noorient
geometry={
Ne,,0.0,0.0,0.0
Ar,,0.0,0.0,6.5}
basis=avtz

!=========delta(HF) contribution for higher order interaction terms====
!sapt files
ca=2101.2
cb=2102.2

!dimer
hf
edm=energy

!monomer A
dummy,ar
{hf; save,$ca}
ema=energy
{sapt;monomerA}

!monomer B
dummy,ne
{hf; start,atdens; save,$cb}
emb=energy
{sapt;monomerB}

!interaction contributions
{sapt,SAPT_LEVEL=2;intermol,ca=$ca,cb=$cb,icpks=1}

!calculate high-order terms by subtracting 1st+2nd order energies
eint_hf=(edm-ema-emb)*1000 mH
delta_hf=eint_hf-e1pol-e1ex-e2ind-e2exind


!=========DFT-SAPT at second order intermol. perturbation theory====
!sapt files
ca=2103.2
cb=2104.2

!shifts for asymptotic correction to xc potential
eps_homo_pbe0_ar=-0.440936      !HOMO(Ar)/PBE0 functional
eps_homo_pbe0_ne=-0.589207      !HOMO(Ne)/PBE0
ip_ar=0.5792                    !exp. ionisation potential
ip_ne=0.7925                    !exp. ionisation potential
shift_ar=ip_ar+eps_homo_pbe0_ar !shift for bulk xc potential (Ar)
shift_ne=ip_ne+eps_homo_pbe0_ne !shift for bulk xc potential (Ne)

!monomer A
dummy,ar
{ks,pbe0; asymp,shift_ne; save,$ca}
{sapt;monomerA}

!monomer B
dummy,ne
{ks,pbe0; start,atdens; asymp,shift_ar; save,$cb}
{sapt;monomerB}

!interaction contributions
{sapt;intermol,ca=$ca,cb=$cb,icpks=0}

!add high-order approximation to obtain the total interaction energy
eint_dftsapt=e12tot+delta_hf

DF-DFT-SAPT calculation of the NeAr dimer using the delta-HF correction

examples/near_df_sapt_acdft.inp
gdirect; gthresh,energy=1.d-8,orbital=1.d-8,grid=1.d-8
symmetry,nosym
orient,noorient
geometry={
Ne,,0.0,0.0,0.0
Ar,,0.0,0.0,6.5}
basis={
set,orbital; default,avtz         !for orbitals
set,jkfit;   default,avtz/jkfit   !for JK integrals
set,mp2fit;  default,avtz/mp2fit  !for E2disp/E2exch-disp
set,dflhf;   default,avtz/jkfit   !for LHF
}

!=========delta(HF) contribution for higher order interaction terms====
ca=2101.2; cb=2102.2 !sapt files

!dimer
{df-hf,basis=jkfit,locorb=0}
edm=energy

!monomer A
dummy,ar
{df-hf,basis=jkfit,locorb=0; save,$ca}
ema=energy
{sapt;monomerA}

!monomer B
dummy,ne
{df-hf,basis=jkfit,locorb=0; save,$cb}
emb=energy
{sapt;monomerB}

!interaction contributions
{sapt,Sinf=0,SAPT_LEVEL=2;intermol,ca=$ca,cb=$cb,icpks=1,fitlevel=3
dfit,basis_coul=jkfit,basis_exch=jkfit,cfit_scf=3}

!calculate high-order terms by subtracting 1st+2nd order energies
eint_hf=(edm-ema-emb)*1000 mH
delta_hf=eint_hf-e1pol-e1ex-e2ind-e2exind

!=========DFT-SAPT at second order intermol. perturbation theory====
ca=2103.2; cb=2104.2 !sapt files;

!shifts for asymptotic correction to xc potential
eps_homo_pbe0_ar=-0.440936      !HOMO(Ar)/PBE0 functional
eps_homo_pbe0_ne=-0.589207      !HOMO(Ne)/PBE0
ip_ar=0.5792                    !exp. ionisation potential
ip_ne=0.7925                    !exp. ionisation potential
shift_ar=ip_ar+eps_homo_pbe0_ar !shift for bulk xc potential (Ar)
shift_ne=ip_ne+eps_homo_pbe0_ne !shift for bulk xc potential (Ne)

!monomer A, perform LPBE0AC calculation
dummy,ar
{df-ks,pbex,pw91c,lhf; dftfac,0.75,1.0,0.25; asymp,shift_ne; save,$ca}
{sapt;monomerA}

!monomer B, perform LPBE0AC calculation
dummy,ne
{df-ks,pbex,pw91c,lhf; dftfac,0.75,1.0,0.25; start,atdens; asymp,shift_ar; save,$cb}
{sapt;monomerB}

!interaction contributions
{sapt,Sinf=0,SAPT_LEVEL=3;intermol,ca=$ca,cb=$cb,icpks=0,fitlevel=3,nlexfac=0.0
dfit,basis_coul=jkfit,basis_exch=jkfit,cfit_scf=3}

!add high-order approximation to obtain the total interaction energy
eint_dftsapt=e12tot+delta_hf

Options

The following parameters are of importance if SAPT_FITLEVEL$>$0:

The last threshold values for the 2- and 3-index integrals should not be set higher in density fitting calculations as this can cause lower accuracies in the interaction terms. In addition SAPT knows the following subcommands:

INTERMOL may have the following subkeywords:

DFSAPT: a density-fitting DFT-SAPT program for arbitrary monomer basis sets

DFSAPT is an alternative density-fitting DFT-SAPT program which works with arbitrary monomer basis sets and which can be used for extended dimer systems of about 800 electrons, see Ref.[8].

For a standard DFSAPT calculation using a dimer centered basis set the Molpro input file looks very similar to a corresponding DF-DFT-SAPT claculation, see DFSAPT calculation of the water dimer using a DCBS basis set. There are, however, two important points to be taken care of:

A corresponding calculation, in which the water monomers are calculated in their own local basis set (monomer centered basis set calculation) is presented in DFSAPT calculation of the water dimer using an MCBS basis set. Note, however, that very large basis sets are required to converge the individual interaction energy contributions. In order to improve the basis set convergence, additional midbond functions can be added as is exemplified in DFSAPT calculation of the water dimer using an MC+BS basis set. Here the def2-TZVP basis functions for the Neon atom were positioned in between the O$\cdots$H hydrogen bridge.

A complete (DCBS) DFSAPT calculation with additional $\delta$(HF) correction and using the PBE0AC(BRJ) xc potential (with automatic asymptotic correction) is shown in section DFSAPT calculation of the water dimer with additional d(HF) correction.

Note that in contrast to the DFT-SAPT/DF-DFT-SAPT programs the exchange-dispersion energy is not calculated on the coupled level. Instead, the coupled $E^{(2)}_{exch-disp}$ energies are estimated by scaling the uncoupled ones with a factor which has been obtained from a linear fit to exact results, see Ref.[8].

The following list shows all options which can be used with the DFSAPT program:

The DFSAPT program can also be used to compute the monomer response functions within the exact-exchange Kohn-Sham response (TDEXX) approach, see section using exact exchange Kohn-Sham response kernels. As in the standard DFT-SAPT program, the $\langle i|v_x^{\text{NL}}-v_x|j\rangle$ have to be computed for each monomer using the OEP program (section optimised Effective Potential (OEP) method). An input template for this would be given by:

dummy,<atoms on B> !monomer A
{df-ks,lda; save,2100.2; start,atdens}
{exxhyb,orb=2100.2,oep=7,homo=1,charge=1,maxit=30,scfthr=1d-9,add=1,\
        xfac=0.25,shift=1,dfit=1
func,pbex,pbec; dftfac,0.75,1.0}
{oep,orb=2101.2,vxdiff=5100.2,gamma=3d-4,dfit=1,homo=1}
{sapt;monomerA}

dummy,<atoms on A> !monomer B
{ks,lda; save,2200.2; start,atdens}
{exxhyb,orb=2200.2,oep=7,homo=1,charge=1,maxit=30,scfthr=1d-9,add=1,\
        xfac=0.25,shift=1,dfit=1
func,pbex,pbec; dftfac,0.75,1.0}
{oep,orb=2201.2,vxdiff=5200.2,gamma=3d-4,dfit=1,homo=1}
{sapt;monomerB}

dfsapt,all=1,fcoul=1.0,fxc=1.0,cpks=2,x0thr=1d-8,tdexx=2,nfreq=10, \
       tdexxfac=1d0,kernmod=1,auxmax=100

which again presents an example where the orbitals of the monomers are calculated with the LPBE0AC xc potential. All publications resulting from DFSAPT calculations employing the (A)TDEXX response kernel should cite Ref. [9].

DFSAPT calculation of the water dimer using a DCBS basis set

examples/h2o_2-dfsapt.inp
***,h2o-dimer DCBS
gthresh,energy=1.d-8,orbital=1.d-8,grid=1.d-8
oldnorm=1
ca=2101.2
cb=2102.2

basis={
set,orbital
default,def2-tzvpp
default,def2-tzvpp/jkfit
set,mp2fit
default,def2-tzvpp/mp2fit}

symmetry,nosym
angstrom
geometry={
 1,O1,,  -1.551007,  -0.114520,   0.000000
 2,H2,,  -1.934259,   0.762503,   0.000000
 3,H3,,  -0.599677,   0.040712,   0.000000
 4,O4,,   1.350625,   0.111469,   0.000000
 5,H5,,   1.680398,  -0.373741,  -0.758561
 6,H6,,   1.680398,  -0.373741,   0.758561}

dummy,4,5,6
{ks,pbe; save,$ca}
monomerA,orb=$ca,core=1

dummy,1,2,3
{ks,pbe; start,atdens; save,$cb}
monomerB,orb=$cb,core=1

{grid,gridthr=1d-8}
dfsapt,all=1,fcoul=1.0,fxc=1.0

DFSAPT calculation of the water dimer using an MCBS basis set

examples/h2o_2-mc-dfsapt.inp
***,h2o-dimer MCBS
gthresh,energy=1.d-8,orbital=1.d-8,grid=1.d-8
oldnorm=1
ca=2101.2
cb=2102.2

symmetry,nosym
angstrom
noorient
geometry={
 1,O1,,  -1.551007,  -0.114520,   0.000000
 2,H2,,  -1.934259,   0.762503,   0.000000
 3,H3,,  -0.599677,   0.040712,   0.000000}
basis={set,orbital; default,def2-tzvpp}

{ks,pbe; save,$ca}
monomerA,orb=$ca,core=1

symmetry,nosym
angstrom
noorient
geometry={
 4,O4,,   1.350625,   0.111469,   0.000000
 5,H5,,   1.680398,  -0.373741,  -0.758561
 6,H6,,   1.680398,  -0.373741,   0.758561}

{ks,pbe; start,atdens; save,$cb}
monomerB,orb=$cb,core=1

symmetry,nosym
angstrom
noorient
geometry={
 1,O1,,  -1.551007,  -0.114520,   0.000000
 2,H2,,  -1.934259,   0.762503,   0.000000
 3,H3,,  -0.599677,   0.040712,   0.000000
 4,O4,,   1.350625,   0.111469,   0.000000
 5,H5,,   1.680398,  -0.373741,  -0.758561
 6,H6,,   1.680398,  -0.373741,   0.758561}

basis={
set,orbital; default,def2-tzvpp
set,jkfit;   default,def2-tzvpp/jkfit
set,mp2fit;  default,def2-tzvpp/mp2fit}

{grid,gridthr=1d-8}
dfsapt,all=1,fcoul=1.0,fxc=1.0

DFSAPT calculation of the water dimer using an MC+BS basis set

examples/h2o_2-mcplus-dfsapt.inp
***,h2o-dimer MC+BS
gthresh,energy=1.d-8,orbital=1.d-8,grid=1.d-8
oldnorm=1
ca=2101.2
cb=2102.2
basis={set,orbital; default,def2-tzvpp}

symmetry,nosym
angstrom
noorient
geometry={
 1,O1,,  -1.551007,  -0.114520,   0.000000
 2,H2,,  -1.934259,   0.762503,   0.000000
 3,H3,,  -0.599677,   0.040712,   0.000000
 4,Ne7,,  0.375474,   0.076091,   0.000000}
dummy,ne7
{ks,pbe; save,$ca}
monomerA,orb=$ca,core=1

symmetry,nosym
angstrom
noorient
geometry={
 4,O4,,   1.350625,   0.111469,   0.000000
 5,H5,,   1.680398,  -0.373741,  -0.758561
 6,H6,,   1.680398,  -0.373741,   0.758561
 7,Ne7,,  0.375474,   0.076091,   0.000000}
dummy,ne7
{ks,pbe; start,atdens; save,$cb}
monomerB,orb=$cb,core=1

symmetry,nosym
angstrom
noorient
geometry={
 1,O1,,  -1.551007,  -0.114520,   0.000000
 2,H2,,  -1.934259,   0.762503,   0.000000
 3,H3,,  -0.599677,   0.040712,   0.000000
 4,O4,,   1.350625,   0.111469,   0.000000
 5,H5,,   1.680398,  -0.373741,  -0.758561
 6,H6,,   1.680398,  -0.373741,   0.758561
 7,Ne7,,  0.375474,   0.076091,   0.000000}
basis={
set,orbital; default,def2-tzvpp
set,jkfit;   default,def2-tzvpp/jkfit
set,mp2fit;  default,def2-tzvpp/mp2fit}

dummy,ne7
{grid,gridthr=1d-8}
dfsapt,all=1,fcoul=1.0,fxc=1.0

DFSAPT calculation of the water dimer with additional d(HF) correction

examples/h2o_2-dfsapt2.inp
gdirect
gthresh,energy=1d-8,orbital=1d-7,grid=1d-8
symmetry,nosym
angstrom
geometry={
 1,O1,,  -1.551007,  -0.114520,   0.000000
 2,H2,,  -1.934259,   0.762503,   0.000000
 3,H3,,  -0.599677,   0.040712,   0.000000
 4,O4,,   1.350625,   0.111469,   0.000000
 5,H5,,   1.680398,  -0.373741,  -0.758561
 6,H6,,   1.680398,  -0.373741,   0.758561}
basis={
set,orbital; default,avdz
set,jkfit;   default,avdz/jkfit
set,mp2fit;  default,avdz/mp2fit}
oldnorm=1
ca=2110.2; cb=2120.2
nkerna=1;  nkernb=1

{df-hf,basis=jkfit; save,2100.2}
edm_hf=energy

dummy,4,5,6
{df-hf,basis=jkfit; save,$ca; start,atdens}
ema_hf=energy
monomerA,orb=$ca,core=$nkerna

dummy,1,2,3
{df-hf,basis=jkfit; save,$cb; start,atdens}
emb_hf=energy
monomerB,orb=$cb,core=$nkernb

{grid,gridthr=1d-6}
{dfsapt,e1p=1,e1x=1,e2i=1,e2xi=1,auxbas='jkfit',fexx=1.0,fcoul=1.0,mode=1,cdirect=1,thrcg=1d-6}
{grid,gridthr=1d-8}

eint_hf=(edm_hf-ema_hf-emb_hf)*1000e0 mH
delta_hf=eint_hf-e12tot

dummy,4,5,6
lxgamma=1.15
{df-ks,lxbecke,pbex,pbec,basis=jkfit; dftfac,0.25,0.75,1.0; asymp,0d0; save,$ca; start,atdens}
monomerA,orb=$ca,core=$nkerna

dummy,1,2,3
lxgamma=1.15
{df-ks,lxbecke,pbex,pbec,basis=jkfit; dftfac,0.25,0.75,1.0; asymp,0d0; save,$cb; start,atdens}
monomerB,orb=$cb,core=$nkernb

{grid,gridthr=1d-6}
{dfsapt,all=1,auxbas='mp2fit',fxc=1.0,fcoul=1.0,mode=1,cpks=2,fxcfit=1,fxcsing=1,t678=3}
eint_sapt=e12tot+delta_hf

SAPT(CCSD)

SAPT with monomers described on the CCSD level is available for small complexes. In SAPT(CCSD) monomer density matrices and density-density matrix response functions from expectation-value CCSD theory are utilized. A high cost of SAPT(CCSD) results from the necessity of calculation of the CCSD response functions. Cumulant contributions from two-electron density matrices for $E_{\text{exch}}^{(1)}$ and $E_{\text{exch-ind}}^{(2)}$ are also available. The calculations can be performed for dimer-centered or monomer-centered-plus basis sets (the latter for all components but $E^{(2)}_{\text{exch-disp}}$). $E^{(2)}_{\text{disp}}$ and $E^{(2)}_{\text{exch-disp}}$ are usually calculated from density-fitted response functions in order to reduce the CPU time (from ${\cal O}({\cal N}^8)$ to ${\cal O}({\cal N}^7)$, where ${\cal N}$ is the molecular size). Note that $E^{(2)}_{\text{disp}}$ and $E^{(2)}_{\text{exch-disp}}$ are calculated separately from other SAPT components. It is important to note that SAPT(CCSD) and DFT-SAPT from Chapter introduction are completely different codes.

References:

Review of SAPT(CCSD):
$[1]$ T. Korona, in Recent Progress in Coupled Cluster Methods, Eds. P. Čársky, J. Paldus, J. Pittner, Springer-Verlag (2010), Coupled cluster treatment of intramonomer correlation effects in intermolecular interactions, p. 267
$[2]$ T. Korona, M. Przybytek, B. Jeziorski, Mol. Phys. 104, 2303 (2006)
$[3]$ T. Korona, B. Jeziorski, J. Chem. Phys. 125, 184109 (2006)
$[4]$ T. Korona, B. Jeziorski, J. Chem. Phys. 128, 144107 (2008)
$[5]$ T. Korona, J. Chem. Phys. 128, 224104 (2008)
$[6]$ T. Korona, Phys. Chem. Chem. Phys. 10, 5698 (2008)
$[7]$ T. Korona, Phys. Chem. Chem. Phys. 10, 6509 (2008)
$[8]$ T. Korona, J. Chem. Theory Comput. 5, 2663 (2009)

MP2-coupled (MP2C)

The standard second-order Møller-Plesset perturbation theory (MP2) method fails to describe long-range correlation energies accurately. The reason for this stems from the fact that the MP2 method does not take into account intramolecular correlation effects of two interacting monomers, i.e., describes dispersion interactions on an uncoupled Hartree-Fock level [1]. To remedy this, the supermolecular MP2 interaction energy can be corrected in a hybrid supermolecular-perturbation theory approach by subtracting the uncoupled HF (UCHF) dispersion energy and adding the dispersion energy from a more accurate response theory method instead. In the MP2C (MP2 coupled) method, the latter is computed using the time-dependent density-functional theory (TDDFT) approach employing static response functions from the EXX method and coupled response functions computed by using the ALDA exchange kernel:

$$\Delta E_{\text{int}}^{\text{MP2C}}=\Delta E_{\text{int}}^{\text{MP2}} -E_{\text{disp}}^{(20)}[\mbox{UCHF}] +E_{\text{disp}}^{(2)}[\mbox{TDDFT}]$$

In Molpro, MP2C calculations can be performed with the aid of the TDDFT module that computes frequency-dependent coupled or uncoupled response functions. Using the LHF (Local Hartree-Fock) method (section local Hartree-Fock (LHF) method) an input for computing the MP2C interaction energy could read (using density-fitting within the HF/MP2 calculations and using 10 frequency integration points)

basis={
set,orbital; default,<basis>
set,jkfit;   default,<basis>/jkfit
set,mp2fit;  default,<basis>/mp2fit
set,dflhf;   default,<basis>/jkfit
set,tddft;   default,<basis>/mp2fit}

{df-hf,basis=jkfit}  !Dimer
{df-mp2}
edm_mp2=energy

dummy,<dummy atoms>  !Monomer A
{df-hf,basis=jkfit; save,<recordA>}
{df-mp2}
ema_mp2=energy
{dftresp; respmat,orb=<recordA>,save=<xarec>,order=0,nfreq=10,ncore=<coreA>,init=1}

dummy,<dummy atoms>  !Monomer B
{df-hf,basis=jkfit; save,<recordB>}
{df-mp2}
ema_mp2=energy
{dftresp; respmat,orb=<recordB>,save=<xbrec>,order=0,nfreq=10,ncore=<coreB>}

{dftresp; disp}
edisp_uhf=e2disp  !uncoupled dispersion energy


dummy,<dummy atoms>  !Monomer A
{cfit,basis=jkfit,locorb=0}
dflhf,orb=<recordA>,lhffit=1
{dftresp; respmat,orb=<recordA+1>,save=<xarec+1>,nfreq=10,ncore=<coreA>,cfac=0.0,init=1}

dummy,<dummy atoms>  !Monomer B
{cfit,basis=jkfit,locorb=0}
dflhf,orb=<recordB>,lhffit=1
{dftresp; respmat,orb=<recordB+1>,save=<xbrec+1>,nfreq=10,ncore=<coreB>,cfac=0.0}

{dftresp; disp}
edisp_lhf=e2disp  !coupled dispersion energy

esup_mp2disp=esup_mp2+(-edisp_uhf+edisp_lhf)*1000.0 mH
show,esup_mp2        !MP2 interaction energy
show,edisp_uhf       !uncoupled dispersion energy
show,edisp_lhf       !coupled dispersion energy
show,esup_mp2disp    !MP2C interaction energy

Notice that in the basis input section a number of basis sets have to be specified for the different parts in the calculation.

Alternatively, the MP2C method can also be used in combination with the OEP method described in section optimised Effective Potential (OEP) method. In this case, the latter part where the coupled dispersion energy is calculated would have to be replaced by something like:

dummy,<dummy atoms>  !Monomer A
{cfit,basis=jkfit,locorb=0}
oep,orb=<recordA>,gamma=3d-4,dfit=1
{dftresp; respmat,orb=<recordA+1>,save=<xarec+1>,nfreq=10,core=<coreA>,cfac=0.0,init=1}

dummy,<dummy atoms>  !Monomer B
{cfit,basis=jkfit,locorb=0}
oep,orb=<recordB>,gamma=3d-4,dfit=1
{dftresp; respmat,orb=<recordB+1>,save=<xbrec+1>,nfreq=10,core=<coreB>,cfac=0.0}

The TDDFT program used to compute the response functions can have the following further options:

All publications resulting from use of this program to compute MP2C interaction energies should acknowledge Refs. [1] and [2]. If the singularity correction to the xc kernel matrix is used, additionally also Ref. [3] can be cited.

Bibliography:
$[1]$ A. Heßelmann, J. Chem. Phys. 128, 144112 (2008)
$[2]$ M. Pitonak, A. Heßelmann, J. Chem. Theory Comput. 6, 168 (2010)
$[3]$ A. Heßelmann and T. Korona, J. Chem. Phys. 141, 094107 (2014).