6.10 Coupled Cluster Active Space Methods

6.10.6 Convergence Strategies and More Advanced Options

These optimized orbital coupled-cluster active space methods enable the use of the full valence space for larger systems than is possible with conventional complete active space codes. However, we should note at the outset that often there are substantial challenges in converging valence active space calculations (and even sometimes optimized orbital coupled cluster calculations without an active space). Active space calculations cannot be regarded as “routine” calculations in the same way as SCF calculations, and often require a considerable amount of computational trial and error to persuade them to converge. These difficulties are largely because of strong coupling between the orbital degrees of freedom and the amplitude degrees of freedom, as well as the fact that the energy surface is often quite flat with respect to the orbital variations defining the active space.

Being aware of this at the outset, and realizing that the program has nothing against you personally is useful information for the uninitiated user of these methods. What the program does have, to assist in the struggle to achieve a converged solution, are accordingly many convergence options, fully documented in Appendix C. In this section, we describe the basic options and the ideas behind using them as a starting point. Experience plays a critical role, however, and so we encourage you to experiment with toy jobs that give rapid feedback in order to become proficient at diagnosing problems.

If the default procedure fails to converge, the first useful option to employ is CC_PRECONV_T2Z, with a value of between 10 and 50. This is useful for jobs in which the MP2 amplitudes are very poor guesses for the converged cluster amplitudes, and therefore initial iterations varying only the amplitudes will be beneficial:

CC_PRECONV_T2Z
       Whether to pre-converge the cluster amplitudes before beginning orbital optimization in optimized orbital cluster methods.
TYPE:
       INTEGER
DEFAULT:
       0 (FALSE) 10 If CC_RESTART, CC_RESTART_NO_SCF or CC_MP2NO_GUESS are TRUE
OPTIONS:
       0 No pre-convergence before orbital optimization. n Up to n iterations in this pre-convergence procedure.
RECOMMENDATION:
       Experiment with this option in cases of convergence failure.

Other options that are useful include those that permit some damping of step sizes, and modify or disable the standard DIIS procedure. The main choices are as follows.

CC_DIIS
       Specify the version of Pulay’s Direct Inversion of the Iterative Subspace (DIIS) convergence accelerator to be used in the coupled-cluster code.
TYPE:
       INTEGER
DEFAULT:
       0
OPTIONS:
       0 Activates procedure 2 initially, and procedure 1 when gradients are smaller than DIIS12_SWITCH. 1 Uses error vectors defined as differences between parameter vectors from successive iterations. Most efficient near convergence. 2 Error vectors are defined as gradients scaled by square root of the approximate diagonal Hessian. Most efficient far from convergence.
RECOMMENDATION:
       DIIS1 can be more stable. If DIIS problems are encountered in the early stages of a calculation (when gradients are large) try DIIS1.

CC_DIIS_START
       Iteration number when DIIS is turned on. Set to a large number to disable DIIS.
TYPE:
       INTEGER
DEFAULT:
       3
OPTIONS:
       n User-defined
RECOMMENDATION:
       Occasionally DIIS can cause optimized orbital coupled-cluster calculations to diverge through large orbital changes. If this is seen, DIIS should be disabled.

CC_DOV_THRESH
       Specifies minimum allowed values for the coupled-cluster energy denominators. Smaller values are replaced by this constant during early iterations only, so the final results are unaffected, but initial convergence is improved when the guess is poor.
TYPE:
       INTEGER
DEFAULT:
       2502 Corresponding to 0.25
OPTIONS:
       abcde Integer code is mapped to abc×10-de
RECOMMENDATION:
       Increase to 0.5 or 0.75 for non convergent coupled-cluster calculations.

CC_THETA_STEPSIZE
       Scale factor for the orbital rotation step size. The optimal rotation steps should be approximately equal to the gradient vector.
TYPE:
       INTEGER
DEFAULT:
       100 Corresponding to 1.0
OPTIONS:
       abcde Integer code is mapped to abc×10-de If the initial step is smaller than 0.5, the program will increase step when gradients are smaller than the value of THETA_GRAD_THRESH, up to a limit of 0.5.
RECOMMENDATION:
       Try a smaller value in cases of poor convergence and very large orbital gradients. For example, a value of 01001 translates to 0.1

An even stronger—and more-or-less last resort—option permits iteration of the cluster amplitudes without changing the orbitals:

CC_PRECONV_T2Z_EACH
       Whether to pre-converge the cluster amplitudes before each change of the orbitals in optimized orbital coupled-cluster methods. The maximum number of iterations in this pre-convergence procedure is given by the value of this parameter.
TYPE:
       INTEGER
DEFAULT:
       0 (FALSE)
OPTIONS:
       0 No pre-convergence before orbital optimization. n Up to n iterations in this pre-convergence procedure.
RECOMMENDATION:
       A very slow last resort option for jobs that do not converge.