CCSD
The CCSD method adopts an exponential wavefunction ansatz:
where \(\psi_0\) is a Hartree-Fock wavefunction (single determinant), \(T_1\) is composed of single excitation operators and amplitudes, and \(T_2\) is composed of double excitation operators and amplitudes:
where \(t_a^i\) and \(t_{ab}^{ij}\) are the amplitudes that need to be determined. The primary advantage of coupled cluster methods is their ability to describe electron correlation while remaining rigorously size-extensive. The primary disadvantage is that they are (usually) restricted to a single determinant reference. Therefore, they can perform poorly when static electron correlation is important (for example, when breaking covalent bonds).
TeraChem implements conventional CCSD as well as tensor-hypercontracted (THC-CCSD) and rank-reduced (RR-CCSD and RR-THC-CCSD) forms.1 It also implements equation-of-motion CCSD (EOM-CCSD) for excited electronic states. Only energies are currently implemented for CCSD methods (i.e., analytic gradients are not available). All coupled-cluster methods implemented in TeraChem assume a closed-shell reference, i.e. a preceding restricted Hartree-Fock calculation. Unrestricted Hartree-Fock (UHF) references are not allowed, nor are open-shell (ROHF) references supported.
To run a CCSD calculation in TeraChem, the minimum required input keywords are:
By default the CCSD code freezes the core orbitals; the number of frozen
orbitals can be adjusted with ccbox_frozen_core (see the general keyword
table in the Coupled Cluster overview).
Worked example
basis cc-pvdz
sphericalbasis true
coordinates geom.xyz
method rhf
run energy
threall 1.0e-14
convthre 1.0e-8
precision double
guess sad
charge 0
spinmult 1
ccbox yes
ccbox_ccsd yes
ccbox_scratch_dir ./scr.geom
ccbox_ccsd_r_convthre 1.0e-6
ccbox_cd_thresh 1.0e-4
end
This computes the CCSD correlation energy on top of a closed-shell RHF
reference. The ccbox_scratch_dir keyword controls where the (potentially
large) CC intermediate files live; by default they go to /tmp, which is
rarely what you want for a production run.
On a successful run, the output ends with a summary block listing the reference, correlation, and total energies along with the D1 diagnostic, a single-reference quality indicator (values above ~0.05 suggest that single-reference CCSD is losing accuracy):
CCSD converged
---------------------------------------------------------
====================> CCSD Energies <===================
---------------------------------------------------------
Reference Energy = -227.8305188340249288 [H]
Correlation Energy = -0.6665110167832837 [H]
Total Energy = -228.4970298508082180 [H]
---------------------------------------------------------
D1 Diagnostic = 0.059025
CCSD(T)
The perturbative triples correction is turned on by adding ccbox_ccsdt yes
to a CCSD job. Triples reuse the converged CCSD amplitudes, so they add no
extra convergence parameters beyond those needed for CCSD itself:
basis cc-pvdz
sphericalbasis true
coordinates geom.xyz
method rhf
run energy
threall 1.0e-24
convthre 1.0e-10
precision double
guess sad
charge 0
spinmult 1
ccbox yes
ccbox_ccsd yes
ccbox_ccsdt yes
ccbox_frozen_core 4
ccbox_scratch_dir ./scr.geom
ccbox_ccsd_r_convthre 1.0e-12
ccbox_cd_thresh 1.0e-13
end
For CCSD(T), it is generally worth tightening ccbox_cd_thresh (Cholesky
decomposition accuracy) and ccbox_ccsd_r_convthre (amplitude convergence)
significantly past their defaults, since errors in the underlying CCSD
amplitudes propagate into the triples correction.
Summary of relevant keywords
| Keyword | Type | Default | Description |
|---|---|---|---|
| ccbox_ccsd_maxiter | integer | 100 | Maximum number of iterations in the CCSD equations |
| ccbox_ccsd_diisvecs | integer | 5 | Maximum number of DIIS vectors when solving the CCSD equations |
| ccbox_ccsd_r_convthre | float | 1.0e-6 | Convergence threshold for amplitudes |
| ccbox_ccsd_e_convthre | float | 1.0e-6 | Convergence threshold for CCSD energy |
| ccbox_ccsdt | boolean | no | Compute perturbative triples correction (i.e. CCSD(T))? |
| ccbox_ccsd_properties | boolean | no | Compute ground-state one-electron properties (e.g. CCSD dipole moment) |
For Cholesky decomposition and general ccbox_* keywords (scratch directory,
frozen-core orbitals, in-memory vs on-disk), see the
Coupled Cluster overview.
References
-
B. S. Fales, E. R. Curtis, K. G. Johnson, D. Lahana, S. Seritan, Y. Wang, H. Weir, T. J. Martinez and E. G. Hohenstein, Performance of Coupled-Cluster Singles and Doubles on Modern Stream Processing Architectures, J. Chem. Theory Comput. 16 4021 (2020). ↩