37.9 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
example `h2o_2-dfsapt.com`

(section 37.9.1). There are,
however, two important points to be taken care of:

**important #1**- Set
`oldnorm=1`

before any call to the DFSAPT program. **important #2**- Add numbers to atom labels in the geometry blocks. These have to have a subsequent ordering, see examples 37.9.1-37.9.4.

A corresponding calculation, in which the water monomers are calculated in their
own local basis set (monomer centered basis set calculation) is presented in
example `h2o_2-mc-dfsapt.com`

(section 37.9.2).
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 example `h2o_2-mcplus-dfsapt.com`

(section 37.9.3).
Here the def2-TZVP basis functions for the Neon atom were positioned in between
the OH hydrogen bridge.

A complete (DCBS) DFSAPT calculation with additional (HF) correction and using the PBE0AC(BRJ) xc potential (with automatic asymptotic correction) is shown in section 37.9.4.

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 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:

`E1P`- Calculate (default:
`1`

). `E1X`- Calculate
(default:
`1`

). `E2I`- Calculate (default:
`0`

). `E2XI`- Calculate
(default:
`0`

). `E2D`- Calculate
(default:
`0`

). `E2XD`- Calculate
(default:
`0`

). `ALL`- Calculate all SAPT contributions (up to 2nd order) (default:
`0`

). `AUXBAS`- Auxiliary basis set (default:
`MP2FIT`

). `NFREQ`- Number of frequencies for computing the monomer response matrices
(default:
`10`

). `GRIDTHR`- Threshold for grid accuracy (default:
`1d-10`

). `THRKERN`- Threshold for density in xc kernel calculation
(default:
`1d-12`

). `PRINT`- Print flag (default:
`0`

). `W0`- Value effects Gauss-Legendre quadrature for computing the response
function (see Amos,Handy,Knowles,Rice,Stone,
*J. Phys.Chem.***89**(1985) 2186) (default:`2d0`

) `FEXX`- Exact exchange factor in response calculations (default:
`0d0`

). `FXC`- Exchange-correlation factor in response calculations
(default:
`0d0`

). `FCOUL`- Coulomb contribution factor in response calculations
(default:
`1d0`

). `XFAC`- Exchange factor in XC kernel (default:
`1d0`

). `CFAC`- Correlation factor in XC kernel (default:
`1d0`

). `AUXMAX`- Maximum block size of auxiliary function space for three-index
integrals of the type (auxorb.orb) (default:
`50`

). `MOMAX`- Maximum block size of orbital function space for three-index
integrals of the type (orborb.aux) (default:
`50`

). `FXCSING`- Singularity correction for XC kernel matrix (default:
`0`

) `THRDUM`- Threshold for density calculated at dummy function gridpoints
(which can serve as a singularity correction for the calculation of the XC kernel
matrix) (default:
`1d-4`

). `COMP`- Write 3-index integrals compressed to disk (to save disk space)
(default:
`0`

). `THRC`- Threshold for 3-index integral calculations (integrals which
are smaller than the given threshold are not written to disk)
(default:
`1d-10`

). `MINB`- Minimal bytelength for integral comression (default:
`1`

). `MODE`- Switch for alternative DFSAPT driver which can use integral
compression (to be evoked by
`MODE=2`

) (default:`1`

). `FXCFIT`- Use density fitting for computation of XC contributions
in CPKS calculation (default:
`0`

). `CPKS`- Switch for different CPKS solvers (default:
`1`

). `CDIRECT`- Use integral direct algorithm for computing the (exact) exchange
contributions in CPKS calculations, otherwise intergrals of the type
(auxvir.vir) are written to disk (default:
`0`

). `MAXIT`- Maximum number of iteractions in CPKS (default:
`60`

). `THRCG`- Threshold for CG/GMRES solver in CPKS calculations
(default:
`1d-8`

). `NSYSOLVE`- Switch for BiCG (
`NSYSOLVE=1`

) or GMRES (`NSYSOLVE=2`

) solver in CPKS calculations (default:`2`

). `NSUB`- Subspace size in GMRES solver (default:
`50`

). `T678`- Switch for 3 different computation modes for
.
`T678=3`

is recommended for the calculation of large systems but requires more disk space to store intermediate quantities (default:`1`

).