Master Macro 100 | Lenses - macro objektiv
To increase the efficiency of MP2 energy evaluation, spin integration and simplification is carried out. This also allows for the identification of Same-Spin (SS) and Opposite-Spin (OS) terms for use in Grimme’s Spin-Component Scaled (SCS) MP2. For RHF-MP2 (also labeled as RMP2), the spin-free equations are (note that the integrals are now chemist’s integrals over spatial orbitals)
Non collima
Finite difference gradients are not marked explicitly by “∷”, but the capability can be gleaned from the energy availability.
For UHF-MP2 (also labeled as UMP2) and the second-order contribution to ROHF-MBPT(2) using semicanonical orbitals, the spin-free equations are
All-in-all, DFMP2 should be a simple module to use, with few keywords (fully documented in the Appendix DFMP2). Some basic recommendations are included below:
Collimare contrario
Algorithm type selection keyword below. Values to the right: conventional CV, density-fitted DF, and Cholesky-decomposed CD.
Here \(i\) and \(j\) are occupied spin orbitals, \(a\) and \(b\) are virtual spin orbitals, \(f_{ia}\) are the \(ov\) Fock Matrix elements, \(\epsilon\) are the orbital eigenvalues, and \(\langle ij||ab\rangle\) are the antisymmetrized physicist’s ERIs. For converged RHF and UHF references, the singles correction,
Collimare significato
The energy('mp2') call to energy() executes the predefined DF-MP2 procedure, first calling the SCF module with a default RHF reference and DF algorithm for the two-electron integrals. When the orbitals are converged, the DF-MP2 module is launched, which forms the density-fitted \((Q|ov)\) integrals and then builds the full \((ov|ov)\) tensor in blocks, evaluating the contributions to the MP2 energy as it goes. A RHF-MP2 wavefunction is selected automatically due to the RHF reference. In this example, we freeze the core, both for efficiency and because split-valence bases like cc-pVDZ do not contain core correlation functions. The result looks something like:
Freezing core is good for both efficiency and correctness purposes. Freezing virtuals is not recommended. The DFMP2 module will remind you how many frozen/active orbitals it is using in a section just below the title.
Collimano significato
DFMP2 likes memory. At a minimum, \(2Q^2\) doubles are required, where \(Q\) is the size of the auxiliary basis set. However, there is one disk transpose of the \((Q|ov)\) tensor in the RHF-MP2 algorithm [two for UHF-MP2 and ROHF-MBPT(2)], so more memory will reduce seek times. If you notice DFMP2 using more memory than allowed, it is possible that the threaded three-index ERI computers are using too much overhead memory. Set the DF_INTS_NUM_THREADS to a smaller number to prevent this in this section (does not affect threaded efficiency in the rest of the code).
DFMP2 should be run with the \(ov\)-type RI or MP2FIT auxiliary basis sets, not the -JKFIT basis sets. The automatic basis selector should work fine for most all bases (exceptions are less common elements at higher than quadruple-zeta). Generally, it is always better to specify only the orbital basis set and let the auxiliary bases be chosen automatically. If you want to specify manually, use the DF_BASIS_MP2 keyword.
The support for MP2 by the DFMP2 module in PSI4 is detailed in Table DFMP2 Capabilities. Even without set qc_module dfmp2, methods will default to this module, but alternate implementations and use of MP2_TYPE for performing a MP2 with conventional integrals can be seen at other modules.
Collimare sinonimo
In the DFMP2 module, the first-order contribution, or “singles energy” is always evaluated. This term is a significant contributor to the total second-order energy if a ROHF reference is used. In this case, we have chosen to use the ROHF-MBPT(2) ansatz, in which the ROHF orbitals are semicanonicalized, the resultant nonzero Fock matrix elements \(f_{ia}\) are used to form the singles amplitudes, and then the second-order amplitudes are formed with the semicanonical spin orbitals via the same machinery as a UHF-MP2. Note that the singles energy should be very close to zero for RHF and UHF references; if it is not, there is a good chance your orbitals are not well converged. Tighten the SCF E_CONVERGENCE and/or D_CONVERGENCE keywords and try again.
Second-order Møller–Plesset Perturbation Theory (MP2) occupies a unique role in quantum chemistry due to its small-prefactor \({\cal O}(N^5)\) treatment of dynamic electron correlation. This unusually cheap ab initio treatment of electron correlation may be made even more efficient by means of the Density-Fitting (DF) approximation (also known as Resolution-of-the-Identity or RI), wherein the quadratic \(ov\) products in the bra- and ket- of the \((ov|ov)\)-type Electron Repulsion Integrals (ERIs) appearing in MP2 are cast onto a linear-scaling auxiliary basis by least-squares fitting. Substitution of the DF factorization into the MP2 equations results in a formal scaling and prefactor reduction of MP2, and further speed gains are possible due to heavy utilization of matrix-multiplication kernels and minimal storage requirements in a DF approach. The method has been found to be quite robust and accurate, and it should be preferred unless extreme accuracy is required or a fitting basis is not defined for the primary basis and atom type encountered. In particular, we have found excellent efficiency and tractability gains when using DF-MP2 in concert with a DF-SCF reference. An efficient, threaded, disk-based DF-MP2 code is available in PSI4 for all single reference types available in the SCF module. MP2 defaults in PSI4 to the density-fitted code.
Fasciocollimato
Note that the UHF-MP2 equations use three classes of integrals, while the RHF-MP2 equations use only one class. Because of this, a UHF-MP2 or ROHF-MBPT(2) energy should take roughly three times as long as an RHF-MP2 energy.
DFMP2 likes disk. At a minimum, \(2Qov\) doubles are required for RHF-MP2, and \(4Qov\) doubles are required for UHF-MP2.
DFMP2 likes threads. Some of the formation of the \((Q|ov)\) tensor relies on threaded BLAS (such as MKL) for efficiency. The main \({\cal O}(N^5)\) step is done via small/medium-sized DGEMMs inside of OpenMP, so make sure to set the OMP_NESTED environment variable to FALSE to prevent thread thrash (or just as well, do not define OMP_NESTED at all).
MP2 is not suitable for systems with multireference character. The orbital energies will come together and an explosion will occur.