9.7 Low-scaling MP2 and MP2-F12 calculations with a hybrid OSV-PNO approximation

The pnoccsd program works* with localized molecular occupied orbitals (LMOs). Their local nature is exploited to truncate for each LMO pair the number of interacting virtual orbitals and therebey the number of required two-electron integrals. PNO-MP2 belong to the family of local correlation methods which have in common the key idea that the correlation energy can be written as a sum of pair contributions

EcorrMP2 = ijeij = 1
4 iajbtabijij||ab (9.11)
and that with localized molecular orbitals the pair contributions eij decrease fast with the distance |rij| between the LMOs i and j (approximately with 1|rij|6) so that for large molecules the number of pairs that need to be included to compute the correlation energies within a given accuracy increases only linearly with the number of atoms. Furthermore, only such virtual orbitals contribute significantly the correlation energy eij of a pair ij which are spatially close to i or j.

The OSV-PNO hybrid approach implemented in the pnoccsd program starts with the determination of truncated subsets of orbital-specific virtual (OSV) orbitals for each LMO i as the eigenvectors of diagonal density contributions Dii computed from (approximate) MP2 doubles amplitudes:

Dabii = 2 ctaciit cbii = ˜c dac˜ iin˜c iid b˜c ii (9.12)
with occupation numbers n˜c ii not smaller than a predefined threshold tolosv. The OSVs are first used to calculate for each pair ij an estimate for the pair correlation energy contribution eij and to set up a list of pairs ij for which significant contributions to the total correlation energy are expected. Only for this list of pairs the OSVs of the two LMOs are merged together to an orthonormal set of pre-PNOs ˜c ij which are used to compute the contribution of the pair ij to the density matrix via approximated MP2 amplitudes and as eigenvectors of these densities the coefficients of the pair natural orbitals:
Dã ij˜b ijij = 2 ˜c ijtãij˜c ijijt˜c ij˜b ijij = cdacijn cijd bcij . (9.13)
Similar as for the OSVs also the PNOs with occupation numbers ncij below the PNO trunction threshold tolpno are discarded.

For OSV-PNO-MP2 the MP2 equations are then solved with the amplitudes and two-electron integals projected onto the so determined set of pair natural orbitals. For the explicitly-correlated variant OSV-PNO-MP2-F12 similar sets of orbital and pair specific auxiliary orbitals (OSX) are determined for the occupied and the complementary virtual orbital spaces which appear in the calculation of the three-electron integrals for the additional contributions from the geminals.

The thresholds for discarding PNOs and OSVs and the subset of auxiliary orbitals for the local RI approximation for computing two-electron integrals play an important role for the accuracy and the computational costs of calculations with the pnoccsd program. Per default all thresholds are coupled to the PNO truncation threshold tolpno such that the errors due to the OSV, local RI and pair truncation approximations and due to the screening of (AO) integrals and contributions to the residual are about an order of magnitude smaller than the PNO truncation error. The default value for tolpno is 10-7 which gives PNO truncation errors in the correlation energy < 1%. Test calculations showed that the relataive errors in the correlation energy decrease typically linear with √tolpno-.

For a PNO-MP2 calculation with default thresholds and standard basis sets the pnoccsd program does not require any special input apart from $freeze and $maxcor and the input needed for the Hartree-Fock calculation. It is, however, recommended to specify the PNO truncation threshold in the data group $pnoccsd.

Running pnoccsd parallel The pnoccsd program is parallelized with OMP for shared-memory and with MPI for distributed memory architectures. Important for performance of the parallel pnoccsd calculations are the settings for the core memory usage and for the directories where large integral and scratch files are stored.

The keyword $maxcor defines for pnoccsd (as for ricc2 and ccsdf12) the core memory usage.Note, however, that $maxcor defines only the memory controled by the electronic structure code. Additional memory can be allocated by the math and MPI libraries linked into the program and by the operating and I/O systems. It is therefore recommended to set $maxcor not higher than to 75% of the physical core memory that is available for the calculation.

For MPI parallel pnoccsd calculations it is very important to set with the $tmpdir keyword the path to directories in fast local file systems to avoid that large integral and scratch files are stored in the NFS file system where the calculation is started.