CC: Coupled Cluster Theory¶
Code author: T. Daniel Crawford
Section author: T. Daniel Crawford
Module: PSI Variables
Module: Keywords, CCRESPONSE
The coupled cluster approach is one of the most accurate and reliable quantum chemical techniques for including the effects of electron correlation. Instead of the linear expansion of the wavefunction used by configuration interaction, coupled cluster uses an exponential expansion,
where the cluster operator \({\hat{T}}\) is written as a sum of operators that generate singlyexcited, doublyexcited, etc., determinants:
with
etc. The popular coupled cluster singles and doubles (CCSD) model [Purvis:1982] truncates the expansion at \({\hat{T}} = {\hat{T}_1} + {\hat{T}_2}\). This model has the same number of parameters as configuration interaction singles and doubles (CISD) but improves upon it by approximately accounting for higherorder terms using products of lowerorder terms (e.g., the term \({\hat{T}_2}^2\) approximately accounts for quadruple excitations). The inclusion of such products makes coupledcluster methods size extensive, meaning that the quality of the computation should not degrade for larger molecules. The computational cost for CCSD scales as \({\cal{O}}(o^2 v^4)\), where \(o\) is the number of occupied orbitals and \(v\) is the number of virtual orbitals.
Improving upon CCSD, the CCSD(T) method [Raghavachari:1989] includes a perturbative estimate of the energy contributed by the \({\hat{T}_3}\) operator. The computational cost of this additional term scales as \({\cal{O}}(o^3 v^4)\), making it rather expensive for molecules with more than a dozen heavy atoms or so. However, when this method is affordable, it provides very high quality results in most cases.
PSI4 is capable of computing energies and analytic gradients for a number of coupled cluster models. It can also compute linear response properties (such as static or frequencydependent polarizability, or optical rotation angles) for some models. Excited states can also be computed by the CC2 and CC3 models, or by EOMCCSD. Table CC Methods summarizes these capabilities. This section describes how to carry out coupled cluster calculations within PSI4. For higherorder coupledcluster methods like CCSDT and CCSDTQ, PSI4 can interface to Kállay’s MRCC code (see MRCC).
Solvent effects on energies can be taken into account using the polarizable continuum model (PCM) in the PTE approximation [Cammi:2009:164104], see PCM
The following wavefunctions are currently recognized by PSI4 as arguments
to functions like energy()
: 'ccsd'
, 'ccsd(t)'
, 'accsd(t)'
, 'cc2'
,
'cc3'
, 'bccd'
(CCD with Brueckner orbitals), 'bccd(t)'
(CCD(T) with
Brueckner orbitals), 'eomccsd'
, 'eomcc2'
(CC2 for excited states),
'eomcc3'
(CC3 for excited states). Response properties can be obtained
by calling the function properties()
(instead of, for example, energy()
,
e.g., properties('ccsd')
. There are many sample
coupled cluster inputs provided in psi4/samples.
The various methods supported by the CCENERGY modules in PSI4 are
summarized in Table CC Methods and detailed
(except excited state methods) in Table CCENERGY Capabilities. Even without set qc_module ccenergy
,
methods will default to this module, but alternate implementations can
be seen at other modules.
Method 
Reference 
Energy 
Gradient 
Exc. Energies 
LR Props 

CC2 
RHF 
Y 
Y 
Y 
Y 
UHF 
Y 
— 
— 
— 

ROHF 
Y 
— 
— 
— 

CCSD 
RHF 
Y 
Y 
Y 
Y 
UHF 
Y 
Y 
Y 
— 

ROHF 
Y 
Y 
Y 
— 

CCSD(T) 
RHF 
Y 
Y 
n/a 
n/a 
UHF 
Y 
Y 
n/a 
n/a 

ROHF 
Y 
— 
n/a 
n/a 

ACCSD(T) [4] 
RHF 
Y 
— 
n/a 
n/a 
CC3 
RHF 
Y 
— 
Y 
— 
UHF 
Y 
— 
Y 
— 

ROHF 
Y 
— 
Y 
— 

CCD 
Brueckner 
Y 
— 
— 
— 
CCD(T) 
Brueckner 
Y 
— 
n/a 
n/a 
◻ ◻ name ↓ → ◻ ◻ 
◻ ◻ type[1] ↓ → 
QC_MODULE=CCENERGY Capabilities 


Restricted (RHF) 
Unrestricted (UHF) 
Restricted Open (ROHF) 

CV 
DF 
CD 
CV 
DF 
CD 
CV 
DF 
CD 
CV 
DF 
CD 
CV 
DF 
CD 
CV 
DF 
CD 

A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 
A 
F 

bccd 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 

cc2 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 

ccsd 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 

ccsd(t) 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 

accsd(t)[4] 
✓̳ 
✓̳ 

bccd(t) 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 

cc3 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
✓̳ 
Basic Keywords¶
A complete list of keywords related to coupledcluster computations is provided in the appendices, with the majority of the relevant keywords appearing in Appendix CCENERGY. For a standard groundstate CCSD or CCSD(T) computation, the following keywords are common:
REFERENCE¶
Reference wavefunction type
Type: string
Possible Values: RHF, ROHF, UHF
Default: RHF
R_CONVERGENCE¶
Convergence criterion for wavefunction (change) in CC amplitude equations.
Type: conv double
Default: 1e7
MAXITER¶
Maximum number of iterations to solve the CC equations
Type: integer
Default: 50
BRUECKNER_ORBS_R_CONVERGENCE¶
Convergence criterion for Brueckner orbitals. The convergence is determined based on the largest \(T_1\) amplitude. Default adjusts depending on E_CONVERGENCE
Type: conv double
Default: 1e5
RESTART¶
Do restart the coupledcluster iterations from old \(t_1\) and \(t_2\) amplitudes? For geometry optimizations, Brueckner calculations, etc. the iterative solution of the CC amplitude equations may benefit considerably by reusing old vectors as initial guesses. Assuming that the MO phases remain the same between updates, the CC codes will, by default, reuse old vectors, unless the user sets RESTART = false.
Type: boolean
Default: true
CACHELEVEL¶
Caching level for libdpd governing the storage of amplitudes, integrals, and intermediates in the CC procedure. A value of 0 retains no quantities in cache, while a level of 6 attempts to store all quantities in cache. For particularly large calculations, a value of 0 may help with certain types of memory problems. The default is 2, which means that all fourindex quantities with up to two virtualorbital indices (e.g., \(\langle ij  ab \rangle\) integrals) may be held in the cache.
Type: integer
Default: 2
CACHETYPE¶
Selects the priority type for maintaining the automatic memory cache used by the libdpd codes. A value of
LOW
selects a “low priority” scheme in which the deletion of items from the cache is based on preprogrammed priorities. A value of LRU selects a “least recently used” scheme in which the oldest item in the cache will be the first one deleted.
Type: string
Possible Values: LOW, LRU
Default: LOW
NUM_AMPS_PRINT¶
Number of important \(t_1\) and \(t_2\) amplitudes to print
Type: integer
Default: 10
MP2_AMPS_PRINT¶
Do print the MP2 amplitudes which are the starting guesses for RHF and UHF reference functions?
Type: boolean
Default: false
Larger Calculations¶
Here are a few recommendations for carrying out largebasisset coupled cluster calculations with PSI4:
In most cases it is reasonable to set the
memory
keyword to 90% of the available physical memory, at most. There is a small amount of overhead associated with the coupled cluster modules that is not accounted for by the internal CC memory handling routines. Thus, the user should not specify the entire physical memory of the system, or swapping is likely. However, for especially large calculations, it is better to set thememory
keyword to a value less than 16 GB.Set the CACHELEVEL keyword to
0
. This will turn off cacheing, which, for very large calculations, can lead to heap fragmentation and memory faults, even when sufficient physical memory exists.Set the PRINT keyword to
2
. This will help narrow where memory bottlenecks or other errors exist in the event of a crash.
Excited State Coupled Cluster Calculations¶
A complete list of keywords related to coupled cluster linear response is provided in Appendix CCEOM. The most important keywords associated with EOMCC calculations are:
ROOTS_PER_IRREP¶
Number of excited states per irreducible representation for EOMCC and CCLR calculations. Irreps denote the final state symmetry, not the symmetry of the transition.
Type: array
Default: No Default
E_CONVERGENCE¶
Convergence criterion for excitation energy (change) in the Davidson algorithm for CCEOM. See Table PostSCF Convergence for default convergence criteria for different calculation types.
Type: conv double
Default: 1e6
SINGLES_PRINT¶
Do print information on the iterative solution to the singleexcitation EOMCC problem used as a guess to full EOMCC?
Type: boolean
Default: false
SCHMIDT_ADD_RESIDUAL_TOLERANCE¶
Minimum absolute value above which a guess vector to a root is added to the Davidson algorithm in the EOMCC iterative procedure.
Type: conv double
Default: 1e3
EOM_GUESS¶
Specifies a set of singleexcitation guess vectors for the EOMCC procedure. If EOM_GUESS =
SINGLES
, the guess will be taken from the singlessingles block of the similaritytransformed Hamiltonian, Hbar. If EOM_GUESS =DISK
, guess vectors from a previous computation will be read from disk. If EOM_GUESS =INPUT
, guess vectors will be specified in user input. The latter method is not currently available.
Type: string
Possible Values: SINGLES, DISK, INPUT
Default: SINGLES
Linear Response (CCLR) Calculations¶
Linear response computations are invoked like properties('ccsd')
or properties('cc2')
, along with a list of requested properties.
A complete list of keywords related to
coupled cluster linear response is provided in Appendix CCRESPONSE.
The most important keywords associated with CCLR calculations are as follows.
PROPERTY¶
The response property desired. Acceptable values are
POLARIZABILITY
(default) for dipole polarizabilities,ROTATION
for specific rotations,ROA
for Raman Optical Activity (ROA_TENSOR
for each displacement), andALL
for all of the above.
Type: string
Possible Values: POLARIZABILITY, ROTATION, ROA, ROA_TENSOR, ALL
Default: POLARIZABILITY
OMEGA¶
Array that specifies the desired frequencies of the incident radiation field in CCLR calculations. If only one element is given, the units will be assumed to be atomic units. If more than one element is given, then the units must be specified as the final element of the array. Acceptable units are
HZ
,NM
,EV
, andAU
.
Type: array
Default: No Default
GAUGE¶
Specifies the choice of representation of the electric dipole operator. For polarizability, this keyword is ignored and
LENGTH
gauge is computed. For optical rotation and raman optical activity, this keyword is active, and acceptable values areLENGTH
for the usual lengthgauge representation,VELOCITY``(default) for the modified velocitygauge representation in which the staticlimit optical rotation tensor is subtracted from the frequency dependent tensor, or ``BOTH
. Note that, for optical rotation and raman optical activity calculations, only the choices ofVELOCITY
orBOTH
will yield originindependent results.
Type: string
Possible Values: LENGTH, VELOCITY, BOTH
Default: VELOCITY