4.2.5. CCSDT

CCSDT performs the iterative single determinant CCSD procedure for open shell systems and the noniterative triple contribution calculation to the CCSD energy. For further details the reader is referred to Sections 3.3.16 and 5.1.4 of the tutorials and examples manual. Dependencies

CCSDT requires a previous run of the RASSCF program to produce orbital energies, Fock matrix elements, wave function specification, and some other parameters stored in file JOBIPH. The RASSCF program should be run with the options that produce canonical output orbitals, which is not default. CCSDT also requires transformed integrals produced by MOTRA and stored in the files TRAONE and TRAINT.

It is well known that the CCSD procedure brings the spin contamination into the final wave function \(\ket{\Psi}\) even in the case where the reference function \(\ket{\Phi}\) is the proper spin eigenfunction. The way how to reduce the spin contamination and mainly the number of independent amplitudes is to introduce the spin adaptation. Besides the standard nonadapted (spinorbital) CCSD procedure this program allows to use different levels of spin adaptation of CCSD amplitudes (the recommended citations are Refs. [63, 64]):

  • DDVV T2 adaptation.

    This is the most simple and most universal scheme, in which only the dominant part of T2 amplitudes, namely those where both electrons are excited from doubly occupied (inactive) to virtual (secondary) orbitals, are adapted. The remaining types of amplitudes are left unadapted, i.e. in the spinorbital form. This alternative is an excellent approximation to the full adaptation and can be used for any multiplet.

  • Full T1 and T2 adaptation (only for doublet states yet).

    In this case full spin adaptation of all types of amplitudes is performed. In the present implementation this version is limited to systems with the single unpaired electrons, i.e. to the doublet states only.

Besides these two possibilities there are also available some additional partial ones (see keyword ADAPTATION in Section These adaptations are suitable only for some specific purposes. More details on spin adaptation in the CCSD step can be found in Refs. [63, 64, 65]. The current implementation of the spin adaptation saves no computer time. A more efficient version is under development.

The noniterative triples calculation can follow these approaches:

  • CCSD + T(CCSD) — according to Urban et al. [66]

  • CCSD(T) — according to Raghavachari et al. [67]

  • CCSD(T) — according e.g. to Watts et al. [27]

Actual implementation and careful analysis and discussion of these methods is described in Ref. [28], which is a recommended reference for this program.

The first alternative represents the simplest noniterative T3 treatment and contains only pure \(\braket{T3}{W T2}\) term. Second possibility represents the well known extension to the first one by the \(\braket{T3}{W T1}\) term (\(W\) is the two electron perturbation). For closed shell systems this is the most popular and most frequently used noniterative triples method. For single determinant open shell systems, described by the ROHF reference function standard (Raghavachari et. al.) method needs to be extended by the additional fourth order energy term, namely \(\braket{T3}{U T2}\) (\(U\) is the off-diagonal part of the Fock operator).

In contrast to the iterative CCSD procedure, noniterative approaches are not invariant with respect to the partitioning of the Hamiltonian. Hence, we obtain different results using orbital energies, Fock matrix elements or some other quantities in the denominator. According to our experiences [28], diagonal Fock matrix elements in the denominator represent the best choice. Using of other alternatives requires some experience. Since the triple excitation contribution procedure works strictly within the restricted formalism, resulting noniterative triples contributions depend also on the choice of the reference function. However, differences between this approach (with the reference function produced by a single determinant RASSCF procedure and the diagonal Fock matrix elements considered in the denominator) and the corresponding invariant treatment (with the semicanonical orbitals) are found to be chemically negligible.

For noniterative T3 contribution both non-adapted (spin-orbital) and spin-adapted CCSD amplitudes can be used. For more details, see Ref. [28]. Files Input files

CCSDT will use the following input files: TRAONE, TRAINT, RUNFILE, JOBIPH, (for more information see Section Output files


file with CC amplitudes and CC energy. The name of the file can be changed using keyword RESTART. It contains restart information, like T1aa, T1bb, T2aaaa, T2bbbb, T2abab, CC energy and the number of iterations.


These files contain integrals of \(\braket{ia}{bc}\) type where x represents the symmetry and yy the value of the given index \(i\). The number of these files is equal to the number of \(\alpha\) occupied orbitals (inactive + active). Input

The input for each module is preceded by its name like:


This keyword should be followed by precisely one title line. It should not begin with a blank (else it will not be printed!) This keyword is optional.


This keyword specifies that only CCSD calculation will follow and the integrals will be prepared for the CCSD procedure only. This keyword is optional. (Default=OFF)


This keyword specifies that after CCSD calculation also noniterative T3 step will follow. For such calculations this key must be switched on. The integrals for the triple contribution calculation will then be prepared. This keyword is optional. (Default=ON)


The parameter on the following line defines the type of spin adaptations of CCSD amplitudes.

0 — no spin adaptation — full spinorbital formalism

1 — T2 DDVV spin adaptation

2 — T2 DDVV + T1 DV spin adaptation (only recommended for specific purposes, since the adaptation of T1 included incompletely)

3 — full T2 and T1 spin adaptation (in current implementations limited to doublets only)

4 — full T2 adaptation without SDVS coupling (for doublets only)

This keyword is optional. (Default=0)


The parameter on the following line specifies the type of denominators that will be used in the CCSD procedure.

0 — diagonal Fock matrix elements (different for \(\alpha\) and \(\beta\) spins)

1 — spin averaged diagonal Fock matrix elements — \(\frac{f_{\alpha\alpha}+f_{\beta\beta}}{2}\)

2 — orbital energies

In some cases alternatives 1 and 2 are identical. For nonadapted CCSD calculations the resulting CCSD energy is invariant with respect to the selection of denominators. However, convergence may be affected.

In the present implementation a symmetric denominators (i.e. the input 1 or 2) should be used for spin adapted CCSD calculations. This keyword is optional. (Default=0)


Following line contains socc and svirt levelshift values for occupied and virtual orbitals respectively. Typical values are in the range 0.0–0.5 (in a.u.)


For spin adaptations 3 and 4 only inactive (D) and active (V) orbitals will be shifted, due to the character of the adaptation scheme. For other cases all orbitals are shifted.

This keyword is optional. (Defaults: socc = 0.0, svirt = 0.0)


The parameter on the following line specifies the type of noniterative triples procedure. There are three different types of perturbative triples available (see Section 4.2.5).

0 — CCSD approach (no triples step)

1 — CCSD+T(CCSD) according to Urban et. al [66]

2 — CCSD(T) according to Raghavachari et. al. [67]

3 — CCSD(T) according e.g. to Watts et. al. [27]

This keyword is optional. (Default=3)


The parameter on the following line specifies the type of denominators that will be used in noniterative triples procedure.

0 — diagonal Fock matrix elements (different for \(\alpha\) and \(\beta\) spins)

1 — spin averaged diagonal Fock matrix elements — \(\frac{f_{\alpha\alpha}+f_{\beta\beta}}{2}\)

2 — orbital energies

In some cases alternatives 1 and 2 are identical. This keyword is optional. (Default=0)


The following line contains socc and svirt levelshift values for occupied and virtual orbitals respectively. Typical values are in the range 0.0–0.5 (in a.u.)


In contrast to the iterative CCSD procedure, in noniterative T3 step results are not invariant with respect to the denominator shifting. It is extremely dangerous to use any other than 0.0 0.0 shifts here, since resulting T3 energy may have no physical meaning. This keyword may be useful only in estimating some trends in resulting energy, however, using of default values is strongly recommended.

This keyword is optional. (Defaults: socc = 0.0, svirt = 0.0)


This keyword is followed on the next line by the maximum number of iterations in the CCSD procedure. In the case of the RESTART run this is the number of last allowed iteration, since counting of iterations in RESTART run starts from the value taken from the RSTART file. This keyword is optional. (Default=30)


The real value on the following line defines the convergence criterion on CCSD energy. This keyword is optional. (Default=1.0d-7)

END of input

This keyword indicates that there is no more input to be read. This keyword is optional.


This keyword switches on the DIIS extrapolation. This keyword is followed by two additional parameters on the next line n1 and n2.

n1 — specifies the first iteration, in which DIIS extrapolation procedure will start for the first time. This value must not be less then n2, recommended value is 5–7.

n2 — specifies the size of the DIIS procedure, i.e. the number of previous CCSD steps which will be used for new prediction. In the present implementation n2 is limited to 2–4.

This keyword is optional. (Default=OFF)


The parameter on the next line specifies the level of output printing

0 — minimal level of printing

1 — medium level of printing

2 — full output printing (useful for debugging purposes)

This keyword is optional. (Default=0)


This keyword is followed by the line which specifies the name of the CCSD amplitudes and energy file. The default name is RSTART, but it can be changed in CCSD step using RESTART keyword. This keyword is optional. (Default=:file:RSTART)


This keyword defines the restart conditions and modifies the name of the file, in which restart information (CC amplitudes, CC energy and the number of iterations) is saved. On the following two lines there are control key nn and the name of restart information storing file name.

nn — restart status key

0 — restart informations will be not saved

1 — restart informations will be saved after each iteration in name.

2 — restart run. CC amplitudes and energy will be taken from name file and the CCSD procedure will continue with these values as an estimate.

name — specifies the restart information storing key. The name is limited to 6 characters.

This keyword is optional. (Defaults: nn = 1, name = RSTART)


This keyword specifies the input-output file handling.

1 — Internal Fortran file handling

2 — Molcas DA file handling

The default (1) is recommended in majority of cases, since when calculating relatively large systems with low symmetry, the size of some intermediate files produced may become large, what could cause some troubles on 32-bit machines (2 GB file size limit).


This keyword specifies which type of matrix multiplication is preferred on a given machine. The following line contains two parameters nn, limit.

nn = 1 — standard multiplication \(A B\) is preferred

nn = 2 — transposed multiplication \(A^{\text{T}} B\) is preferred

Parameter limit specifies the limit for using \(A^{\text{T}} B\) multiplication, when nn = 2. (It has no meaning for nn = 1.)

If size(A)/size(B) \(\geq\) limit — standard multiplication is performed, size(A)/size(B) \(<\) limit — transposed multiplication is performed.

(size(A,B) — number of elements in matrix A,B).

Recommended value for limit is 2–3.

Using of transposed matrix (nn = 2) multiplication may bring some computer time reduction only in special cases, however, it requires some additional work space. Default is optimal for absolute majority of cases.

This keyword is optional. (Default=1).

Note, that CCSD and CCT keywords are mutually exclusive. How to run closed shell calculations using ROHF CC codes

First of all it should be noted here, that it is not advantageous to run closed shell calculations using ROHF CC codes, since in the present implementation it will require the same number of arithmetical operations and the core and disk space like corresponding open shell calculations.

Since ROHF CC codes are connected to the output of RASSCF code (through the JOBIPH file), it is necessary to run closed shell Hartree–Fock using the RASSCF program. This can be done by setting the number of active orbitals and electrons to zero (also by including only doubly occupied orbitals into the active space; this has no advantage but increases the computational effort). to guarantee the single reference character of the wave function.

The CC program will recognize the closed shell case automatically and will reorganize all integrals in a required form. For more information the reader is referred to the tutorials and examples manual.

Below is an input file for \(\ce{HF+}\) CCSD(T) calculation.

 HF(+) CCSD(T) input example