10 The programs of the suite

In this section, we discuss the major characteristics of the programs of the Mrcc package, and also provide some information about their use and the corresponding outputs.

dmrcc

Driver for the program system. It calls the programs of the suite (except build.mrcc). It is recommended to run always dmrcc, but advanced users may run the programs one-by-one (e.g., for the purpose of debugging). See also Sect. 9 for further details.

minp

Input reader and analyzer. This program reads the input file MINP, checks keywords, options, and dependencies; sets default values for keywords.

integ

An open-ended atomic orbitals integral code. This code reads and analyzes the molecular geometry, reads the basis sets, and calculates one- and two-electron integrals as well as property integrals over Gaussian-type atomic orbitals. Both the Obara–Saika and the Rys quadrature schemes are implemented for the evaluation of two-electron integrals. In principle integrals over basis functions of arbitrary high angular momentum can be evaluated using the Obara–Saika algorithm.

scf

Hartree–Fock and Kohn–Sham SCF code. It solves the RHF, UHF, ROHF, RKS, UKS, or ROKS equations using either conventional or direct SCF techniques. It also performs the semi-canonicalization of orbitals (if requested) for ROHF wave functions.

orbloc

Orbital localization program. It performs the localization of MOs using the Cholesky, Boys, or generalized Boys procedures. It also constructs the domains for local correlation calculations.

drpa

An efficient three-index integral transformation, density-fitting MP2, RPA, dRPA, SOSEX, and RPAX2 code. The dRPA method is implemented using the modified algorithm of Ref. 54, which scales as the fourth power of the system size, see Ref. 71. drpa is also the driver for local correlation calculations.

mulli

Domain construction for local correlation calculations. It assigns the localized MOs (LMOs) to atoms using the Boughton–Pulay method, and for each occupied LMO it constructs a domain of occupied and virtual LMOs on the basis of their spatial distance. Projected atomic orbitals (PAOs) are also constructed if requested.

ovirt

Integral transformation and orbital optimization code. This program performs the four-index integral transformations of AO integral for correlation calculations. It also carries out the construction of optimized virtual orbitals (OVOs) or MP2 natural orbitals in the case of reduced-cost CC calculations.

ccsd

A very fast, hand-coded, MO-integral-based (DF) CCSD and CCSD(T) code. The code has been designed for local CC calculations but is also very efficient for conventional CC calculations. Currently it only functions for closed-shell systems, and the spatial symmetry is not utilized.

uccsd

A fast, hand-coded, MO-integral-based open-shell (DF) CCSD and CCSD(T) code. The code has been designed for local CC calculations but is also efficient for conventional CC calculations. Currently, the spatial symmetry is not utilized.

mp2f12

An efficient explicitly correlated MP2 (MP2-F12) program. It also computes the intermediates for explicitly correlated CCSD and CCSD(T) calculations.

cis

A very fast, hand-coded, integral direct DF CIS, TDA, TD-DFT, ADC(2), CIS(D), CIS(D), and CC2 code. Currently it only works for closed-shell systems, and the spatial symmetry is not utilized.

prop

This program solves the CPHF/KS equations, constructs relaxed density matrices, calculates first-order molecular properties and Cartesian gradients.

qmmod

Interface program for QM/MM and embedding calculations.

goldstone

This program generates the formulas for mrcc. The program also estimates the memory requirement of the calculation. This is a very crude (the symmetry and spin is not treated exactly) but quick estimate. The real memory requirement, which is usually much smaller, is calculated by xmrcc after the termination of goldstone.

xmrcc

It calculates the exact memory requirement for mrcc. Note that it may take a couple of minutes for complicated wave functions (e.g., MRCC derivatives). It prints out five numbers at the end (in MBytes):

Real*8

Minimal and optimal memory for double-precision (real*8) arrays.

Integer

Memory allocated by mrcc for integer arrays.

Total

(= Real*8 + Integer) The minimal and the optimal amount of total required memory. It is not worth starting the calculation if the real physical memory of the machine is smaller than the Minimal value. The performance of the program is optimal if it can use at least as much memory as the Optimal value. If the memory is between the Minimal and Optimal values, out-of-core algorithms will be executed for particular tasks, and it may result in slow down of the code. Please note that the memory available to the program can be specified by keyword mem (see page 12).

mrcc

Automated, string-based many-body code. It performs the single-point energy as well as derivative calculations for general CC, LR-CC, and CI methods. Abelian spatial symmetry is utilized and a partial spin adaptation is also available for closed-shell systems.

build.mrcc

Installation script of the suite. See Sect. 7 for a detailed description.