@@ -12,77 +12,40 @@ zero as the equations converge. In the SCF procedure, we use the atomic-orbital
1212representation of the occupied-virtual block of the Fock matrix. In the CC method, we
1313could choose the difference between successive sets of cluster amplitudes:
1414
15- ```
16- EQUATION
17- {\mathbf e}_i = {\mathbf T}_{i+1} - {\mathbf T}_i,
18- ```
15+ <img src =" ./figures/error-vector.png " height =" 25 " >
1916
2017where <b >T</b ><sub >i</sub > represents a vector containing all the cluster amplitudes for the * i* -th iteration.
2118
2219There are three important points to note about this choice of error vector:
2320 * Defining the error vectors as differences between successive sets of amplitudes
2421 implies that one cannot begin the DIIS extrapolation until at least three
2522 iterations are complete.
26- * Just as in the SCF DIIS procedure, error vectors should only be computed using *
27- ** non-extrapolated** * sets of cluster amplitudes.
23+ * Just as in the SCF DIIS procedure, error vectors should only be computed using
24+ < b >< i > non-extrapolated</ i ></ b > sets of cluster amplitudes.
2825 * The set of cluster amplitudes can require substantial memory for larger
2926 molecules; hence, the choice of the number of error vectors used in the CC DIIS
3027 procedure is potentially dependent on the available storage (disk and memory).
3128
3229## Extrapolation
3330Given the above definition of the error vectors, the set of linear equations to be solved is the same as that for the SCF DIIS procedure:
3431
35- ```
36- EQUATION
37- \left(
38- \begin{array}{ccccc}
39- B_{11} & B_{12} & \ldots & B_{1m} & -1 \\
40- B_{21} & B_{22} & \ldots & B_{2m} & -1 \\
41- \ldots & \ldots & \ldots & \ldots & -1 \\
42- B_{m1} & B_{m2} & \ldots & B_{mm} & -1 \\
43- -1 & -1 & \ldots & -1 & 0 \\
44- \end{array}
45- \right) \left(
46- \begin{array}{c}
47- c_1 \\
48- c_2 \\
49- \ldots \\
50- c_m \\
51- \lambda
52- \end{array}
53- \right) = \left(
54- \begin{array}{c}
55- 0 \\
56- 0 \\
57- \ldots \\
58- 0 \\
59- -1 \\
60- \end{array}
61- \right),
62- ```
32+ <img src =" ./figures/sys-lin-eqn-ci.png " height =" 125 " >
6333
64- where lambda is a Lagrangian multiplier and the elements <i >B<sub >ij</sub ></i > are computed as dot products of error matrices:
34+ where & lambda ; is a Lagrangian multiplier and the elements <i >B<sub >ij</sub ></i > are computed as dot products of error matrices:
6535
66- ```
67- EQUATION
68- B_{ij} \equiv {\mathbf e}_i \cdot {\mathbf e}_j.
69- ```
36+ <img src =" ./figures/Bij.png " height =" 25 " >
7037
7138A new set of cluster amplitudes is then obtained as a linear combinations of older amplitudes using the coefficients from the linear equations above:
7239
73- ```
74- EQUATION
75- {\mathbf T}_{\rm new} = \sum_i c_i {\mathbf T}_i
76- ```
40+ <img src =" ./figures/new-t-amps.png " height =" 25 " >
7741
7842Again: The extrapolated cluster amplitudes should be used only in the CC amplitude equations, not to compute subsequent error vectors.
7943
8044## Results
8145Once the procedure is working, you should observe a considerable reduction in the
8246number of iterations required to converge the CC amplitude equations to a given
8347tolerance. For example, without DIIS extrapolation, the STO-3G H<sub >2</sub >O test
84- case from [ Project #5 ] ( https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2305 )
85- converges in 38 iterations to a
48+ case from [ Project #5 ] ( ../Project%2305 ) converges in 38 iterations to a
8649precision of 10<sup >-12</sup >:
8750
8851```
0 commit comments