3
\brief Enter brief description of file here
6
#include <libdpd/dpd.h>
12
namespace psi { namespace cchbar {
14
/** Wmbij_build(): Constructs the Wmbij HBAR intermediate, defined in
17
** Wmbij = <mb||ij> - Fme t_ij^be - t_n^b Wmnij + 1/2 <mb||ef> tau_ij^ef
18
** + P(ij) <mn||ie> t_jn^be + P(ij) t_i^e { <mb||ej> - t_nj^bf <mn||ef> }
20
** [cf. Gauss and Stanton, JCP 103, 3561-3577 (1995)]
22
** For RHF orbitals, there is only one unique spin case: WMbIj.
27
void Wmbij_build(void)
30
dpdbuf4 W, E, T2, Wmnij, I, Tau, Z, Z1, Z2, C, D;
32
if(params.ref == 0) { /** RHF **/
34
dpd_buf4_init(&E, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
35
dpd_buf4_sort(&E, CC_HBAR, rspq, 10, 0, "WMbIj");
39
else if(params.ref == 1) { /** ROHF **/
41
dpd_buf4_init(&E, CC_EINTS, 0, 2, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
43
dpd_buf4_sort(&E, CC_HBAR, rspq, 10, 2, "WMBIJ");
45
dpd_buf4_sort(&E, CC_HBAR, rspq, 10, 2, "Wmbij");
48
dpd_buf4_init(&E, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
50
dpd_buf4_sort(&E, CC_HBAR, rspq, 10, 0, "WMbIj");
52
dpd_buf4_sort(&E, CC_HBAR, rspq, 10, 0, "WmBiJ");
56
else if(params.ref == 2) { /** UHF **/
59
dpd_buf4_init(&E, CC_EINTS, 0, 2, 20, 2, 20, 0, "E <IJ||KA> (I>J,KA)");
60
dpd_buf4_sort(&E, CC_HBAR, rspq, 20, 2, "WMBIJ");
64
dpd_buf4_init(&E, CC_EINTS, 0, 12, 30, 12, 30, 0, "E <ij||ka> (i>j,ka)");
65
dpd_buf4_sort(&E, CC_HBAR, rspq, 30, 12, "Wmbij");
69
dpd_buf4_init(&E, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
70
dpd_buf4_sort(&E, CC_HBAR, rspq, 24, 22, "WMbIj");
74
dpd_buf4_init(&E, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
75
dpd_buf4_sort(&E, CC_HBAR, rspq, 27, 23, "WmBiJ");
80
if(params.ref == 0) { /** RHF **/
82
/** F_ME t_Ij^Eb --> W(Mb,Ij) **/
83
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "FME");
84
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
85
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
86
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
89
dpd_file2_close(&Fme);
92
else if(params.ref ==1) { /** ROHF **/
94
/** F_ME t_IJ^EB --> W(MB,IJ) **/
95
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "FME");
96
dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
97
dpd_buf4_init(&W, CC_HBAR, 0, 10, 2, 10, 2, 0, "WMBIJ");
98
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
101
dpd_file2_close(&Fme);
103
/** F_me t_ij^eb --> W(mb,ij) **/
104
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
105
dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tijab");
106
dpd_buf4_init(&W, CC_HBAR, 0, 10, 2, 10, 2, 0, "Wmbij");
107
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
110
dpd_file2_close(&Fme);
112
/** F_ME t_Ij^Eb --> W(Mb,Ij) **/
113
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "FME");
114
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
115
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
116
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
119
dpd_file2_close(&Fme);
121
/** F_me t_iJ^eB --> W(mB,iJ) **/
122
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
123
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
124
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
125
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
128
dpd_file2_close(&Fme);
131
else if(params.ref == 2) { /** UHF **/
133
/** F_ME t_IJ^EB --> W(MB,IJ) **/
134
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "FME");
135
dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
136
dpd_buf4_init(&W, CC_HBAR, 0, 20, 2, 20, 2, 0, "WMBIJ");
137
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
140
dpd_file2_close(&Fme);
142
/** F_me t_ij^eb --> W(mb,ij) **/
143
dpd_file2_init(&Fme, CC_OEI, 0, 2, 3, "Fme");
144
dpd_buf4_init(&T2, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tijab");
145
dpd_buf4_init(&W, CC_HBAR, 0, 30, 12, 30, 12, 0, "Wmbij");
146
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
149
dpd_file2_close(&Fme);
151
/** F_ME t_Ij^Eb --> W(Mb,Ij) **/
152
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "FME");
153
dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
154
dpd_buf4_init(&W, CC_HBAR, 0, 24, 22, 24, 22, 0, "WMbIj");
155
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
158
dpd_file2_close(&Fme);
160
/** F_me t_iJ^eB --> W(mB,iJ) **/
161
dpd_file2_init(&Fme, CC_OEI, 0, 2, 3, "Fme");
162
dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
163
dpd_buf4_init(&W, CC_HBAR, 0, 27, 23, 27, 23, 0, "WmBiJ");
164
dpd_contract244(&Fme, &T2, &W, 1, 2, 0, 1.0, 1.0);
167
dpd_file2_close(&Fme);
171
if(params.ref == 0) { /** RHF **/
173
/** - t_n^b W_MnIj **/
174
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
175
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 0, 0, 0, 0, 0, "WMnIj");
176
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
177
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
179
dpd_buf4_close(&Wmnij);
180
dpd_file2_close(&T1);
183
else if(params.ref == 1) { /** ROHF **/
185
/** - t_N^B W_MNIJ --> W(MB,IJ) **/
186
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
187
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 0, 2, 2, 2, 0, "WMNIJ");
188
dpd_buf4_init(&W, CC_HBAR, 0, 10, 2, 10, 2, 0, "WMBIJ");
189
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
191
dpd_buf4_close(&Wmnij);
192
dpd_file2_close(&T1);
194
/** - t_n^b W_mnij **/
195
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
196
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 0, 2, 2, 2, 0, "Wmnij");
197
dpd_buf4_init(&W, CC_HBAR, 0, 10, 2, 10, 2, 0, "Wmbij");
198
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
200
dpd_buf4_close(&Wmnij);
201
dpd_file2_close(&T1);
203
/** - t_n^b W_MnIj **/
204
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
205
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 0, 0, 0, 0, 0, "WMnIj");
206
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
207
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
209
dpd_buf4_close(&Wmnij);
210
dpd_file2_close(&T1);
212
/** - t_N^B W_mNiJ **/
213
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
214
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 0, 0, 0, 0, 0, "WMnIj");
215
dpd_buf4_sort(&Wmnij, CC_TMP0, qprs, 0, 0, "WnMIj");
216
dpd_buf4_close(&Wmnij);
217
dpd_buf4_init(&Wmnij, CC_TMP0, 0, 0, 0, 0, 0, 0, "WnMIj");
218
dpd_buf4_sort(&Wmnij, CC_TMP1, pqsr, 0, 0, "WnMjI");
219
dpd_buf4_close(&Wmnij);
220
dpd_buf4_init(&Wmnij, CC_TMP1, 0, 0, 0, 0, 0, 0, "WnMjI");
221
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
222
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
224
dpd_buf4_close(&Wmnij);
225
dpd_file2_close(&T1);
227
else if(params.ref == 2) { /** UHF **/
229
/** - t_N^B W_MNIJ --> W(MB,IJ) **/
230
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
231
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 0, 2, 2, 2, 0, "WMNIJ");
232
dpd_buf4_init(&W, CC_HBAR, 0, 20, 2, 20, 2, 0, "WMBIJ");
233
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
235
dpd_buf4_close(&Wmnij);
236
dpd_file2_close(&T1);
238
/** - t_n^b W_mnij **/
239
dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
240
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 10, 12, 12, 12, 0, "Wmnij");
241
dpd_buf4_init(&W, CC_HBAR, 0, 30, 12, 30, 12, 0, "Wmbij");
242
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
244
dpd_buf4_close(&Wmnij);
245
dpd_file2_close(&T1);
247
/** - t_n^b W_MnIj **/
248
dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
249
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 22, 22, 22, 22, 0, "WMnIj");
250
dpd_buf4_init(&W, CC_HBAR, 0, 24, 22, 24, 22, 0, "WMbIj");
251
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
253
dpd_buf4_close(&Wmnij);
254
dpd_file2_close(&T1);
256
/** - t_N^B W_mNiJ **/
257
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
258
dpd_buf4_init(&Wmnij, CC_HBAR, 0, 22, 22, 22, 22, 0, "WMnIj");
259
dpd_buf4_sort(&Wmnij, CC_TMP0, qpsr, 23, 23, "WmNiJ");
260
dpd_buf4_close(&Wmnij);
261
dpd_buf4_init(&Wmnij, CC_TMP0, 0, 23, 23, 23, 23, 0, "WmNiJ");
262
dpd_buf4_init(&W, CC_HBAR, 0, 27, 23, 27, 23, 0, "WmBiJ");
263
dpd_contract424(&Wmnij, &T1, &W, 1, 0, 1, -1.0, 1.0);
265
dpd_buf4_close(&Wmnij);
266
dpd_file2_close(&T1);
270
if(params.ref == 0) { /** RHF **/
272
/** <Mb|Ef> tau_Ij^Ef **/
273
dpd_buf4_init(&I, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
274
dpd_buf4_init(&Tau, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tauIjAb");
275
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
276
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0); /* should run OCC, if needed */
278
dpd_buf4_close(&Tau);
282
else if(params.ref == 1) { /** ROHF **/
284
/** <MB||EF> tau_IJ^EF **/
285
dpd_buf4_init(&I, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
286
dpd_buf4_init(&Tau, CC_TAMPS, 0, 2, 7, 2, 7, 0, "tauIJAB");
287
dpd_buf4_init(&W, CC_HBAR, 0, 10, 2, 10, 2, 0, "WMBIJ");
288
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
290
dpd_buf4_close(&Tau);
293
/* <mb||ef> tau_ij^ef **/
294
dpd_buf4_init(&I, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
295
dpd_buf4_init(&Tau, CC_TAMPS, 0, 2, 7, 2, 7, 0, "tauijab");
296
dpd_buf4_init(&W, CC_HBAR, 0, 10, 2, 10, 2, 0, "Wmbij");
297
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
299
dpd_buf4_close(&Tau);
302
/** <Mb|Ef> tau_Ij^Ef **/
303
dpd_buf4_init(&I, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
304
dpd_buf4_init(&Tau, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tauIjAb");
305
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
306
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
308
dpd_buf4_close(&Tau);
311
/** <mB|eF> tau_iJ^eF **/
312
dpd_buf4_init(&I, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
313
dpd_buf4_init(&Tau, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tauiJaB");
314
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
315
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
317
dpd_buf4_close(&Tau);
320
else if(params.ref == 2) { /** UHF **/
322
/** <MB||EF> tau_IJ^EF **/
323
dpd_buf4_init(&I, CC_FINTS, 0, 20, 7, 20, 5, 1, "F <IA|BC>");
324
dpd_buf4_init(&Tau, CC_TAMPS, 0, 2, 7, 2, 7, 0, "tauIJAB");
325
dpd_buf4_init(&W, CC_HBAR, 0, 20, 2, 20, 2, 0, "WMBIJ");
326
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
327
dpd_buf4_close(&Tau);
331
/* <mb||ef> tau_ij^ef **/
332
dpd_buf4_init(&I, CC_FINTS, 0, 30, 17, 30, 15, 1, "F <ia|bc>");
333
dpd_buf4_init(&Tau, CC_TAMPS, 0, 12, 17, 12, 17, 0, "tauijab");
334
dpd_buf4_init(&W, CC_HBAR, 0, 30, 12, 30, 12, 0, "Wmbij");
335
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
337
dpd_buf4_close(&Tau);
340
/** <Mb|Ef> tau_Ij^Ef **/
341
dpd_buf4_init(&I, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
342
dpd_buf4_init(&Tau, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tauIjAb");
343
dpd_buf4_init(&W, CC_HBAR, 0, 24, 22, 24, 22, 0, "WMbIj");
344
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
346
dpd_buf4_close(&Tau);
349
/** <mB|eF> tau_iJ^eF **/
350
dpd_buf4_init(&I, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
351
dpd_buf4_init(&Tau, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tauiJaB");
352
dpd_buf4_init(&W, CC_HBAR, 0, 27, 23, 27, 23, 0, "WmBiJ");
353
dpd_contract444(&I, &Tau, &W, 0, 0, 1.0, 1.0);
355
dpd_buf4_close(&Tau);
360
/* Sort <ij||ka> integrals for the E*T2 contributions */
361
if(params.ref == 0) { /** RHF **/
363
dpd_buf4_init(&I, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
364
dpd_buf4_sort(&I, CC_TMP0, prqs, 0, 10, "<Mn|Ie> (MI,ne)");
367
dpd_buf4_init(&I, CC_EINTS, 0, 11, 0, 11, 0, 0, "E 2<ai|jk> - <ai|kj>");
368
dpd_buf4_sort(&I, CC_TMP0, sqrp, 0, 10, "2 <Mn|Ie> - <Nm|Ie> (MI,ne)");
372
else if(params.ref == 1) { /** ROHF **/
374
dpd_buf4_init(&I, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
375
dpd_buf4_sort(&I, CC_TMP0, prqs, 0, 10, "I(MI,NE)");
378
dpd_buf4_init(&I, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
379
dpd_buf4_sort(&I, CC_TMP1, prqs, 0, 10, "I(MI,NE)");
382
else if(params.ref == 2) { /** UHF **/
384
dpd_buf4_init(&I, CC_EINTS, 0, 0, 20, 2, 20, 0, "E <IJ||KA> (I>J,KA)");
385
dpd_buf4_sort(&I, CC_TMP0, prqs, 0, 20, "<MN||IE> (MI,NE)");
388
dpd_buf4_init(&I, CC_EINTS, 0, 10, 30, 12, 30, 0, "E <ij||ka> (i>j,ka)");
389
dpd_buf4_sort(&I, CC_TMP0, prqs, 10, 30, "<mn||ie> (mi,ne)");
392
dpd_buf4_init(&I, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
393
dpd_buf4_sort(&I, CC_TMP0, prqs, 0, 30, "<Mn|Ie> (MI,ne)");
396
dpd_buf4_init(&I, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
397
dpd_buf4_sort(&I, CC_TMP0, prqs, 10, 20, "<mN|iE> (mi,NE)");
402
if(params.ref == 0) { /** RHF **/
404
dpd_buf4_init(&Z, CC_TMP0, 0, 0, 10, 0, 10, 0, "Z(MI,jb)");
406
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "2 <Mn|Ie> - <Nm|Ie> (MI,ne)");
407
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
408
dpd_contract444(&I, &T2, &Z, 0, 0, 1, 0);
412
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "<Mn|Ie> (MI,ne)");
413
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIbjA");
414
dpd_contract444(&I, &T2, &Z, 0, 1, -1, 1);
418
dpd_buf4_sort_axpy(&Z, CC_HBAR, psqr, 10, 0, "WMbIj", 1);
421
dpd_buf4_init(&Z, CC_TMP0, 0, 0, 10, 0, 10, 0, "Z(Mj,Ib)");
422
dpd_buf4_init(&I, CC_EINTS, 0, 0, 11, 0, 11, 0, "E <ij|ak>");
423
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 11, 10, 11, 0, "tIbAj");
424
dpd_contract444(&I, &T2, &Z, 0, 0, 1, 0);
428
dpd_buf4_sort_axpy(&Z, CC_HBAR, psrq, 10, 0, "WMbIj", -1);
432
else if(params.ref == 1) { /** ROHF **/
434
/** <MN||IE> t_JN^BE **/
435
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
436
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
437
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(MI,JB)");
438
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
442
/** <Mn||Ie> t_Jn^Be **/
443
dpd_buf4_init(&I, CC_TMP1, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
444
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
445
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 1.0);
450
/** <MN||JE> t_IN^BE **/
451
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
452
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
453
dpd_buf4_init(&Z, CC_TMP3, 0, 0, 10, 0, 10, 0, "Z(MJ,IB)");
454
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 0.0);
458
/** <Mn||Je> t_In^Be **/
459
dpd_buf4_init(&I, CC_TMP1, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
460
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
461
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 1.0);
466
dpd_buf4_init(&Z1, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(MI,JB)");
467
dpd_buf4_sort(&Z1, CC_TMP4, prqs, 0, 10, "Z(MJ,IB)");
469
dpd_buf4_init(&Z1, CC_TMP4, 0, 0, 10, 0, 10, 0, "Z(MJ,IB)");
470
dpd_buf4_init(&Z2, CC_TMP3, 0, 0, 10, 0, 10, 0, "Z(MJ,IB)");
471
dpd_buf4_axpy(&Z1, &Z2, 1.0);
474
dpd_buf4_init(&Z2, CC_TMP3, 0, 0, 10, 0, 10, 0, "Z(MJ,IB)");
475
dpd_buf4_sort(&Z2, CC_TMP4, psrq, 10, 0, "Z(MB,IJ)");
477
dpd_buf4_init(&Z, CC_TMP4, 0, 10, 0, 10, 0, 0, "Z(MB,IJ)");
478
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 2, 0, "WMBIJ");
479
dpd_buf4_axpy(&Z, &W, 1.0);
483
/** <mn||ie> t_jn^be **/
484
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
485
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
486
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(mi,jb)");
487
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
491
/** <mN||iE> t_jN^bE **/
492
dpd_buf4_init(&I, CC_TMP1, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
493
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
494
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 1.0);
499
/** <mn||je> t_in^be **/
500
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
501
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
502
dpd_buf4_init(&Z, CC_TMP3, 0, 0, 10, 0, 10, 0, "Z(mj,ib)");
503
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 0.0);
507
/** <mN||jE> t_iN^bE **/
508
dpd_buf4_init(&I, CC_TMP1, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
509
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
510
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 1.0);
515
dpd_buf4_init(&Z1, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(mi,jb)");
516
dpd_buf4_sort(&Z1, CC_TMP4, prqs, 0, 10, "Z(mj,ib)");
518
dpd_buf4_init(&Z1, CC_TMP4, 0, 0, 10, 0, 10, 0, "Z(mj,ib)");
519
dpd_buf4_init(&Z2, CC_TMP3, 0, 0, 10, 0, 10, 0, "Z(mj,ib)");
520
dpd_buf4_axpy(&Z1, &Z2, 1.0);
523
dpd_buf4_init(&Z2, CC_TMP3, 0, 0, 10, 0, 10, 0, "Z(mj,ib)");
524
dpd_buf4_sort(&Z2, CC_TMP4, psrq, 10, 0, "Z(mb,ij)");
526
dpd_buf4_init(&Z, CC_TMP4, 0, 10, 0, 10, 0, 0, "Z(mb,ij)");
527
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 2, 0, "Wmbij");
528
dpd_buf4_axpy(&Z, &W, 1.0);
532
/** <MN||IE> t_jN^bE **/
533
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
534
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
535
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(MI,jb)");
536
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
537
dpd_buf4_sort(&Z, CC_TMP3, psrq, 10, 0, "Z(Mb,jI)");
541
dpd_buf4_init(&Z, CC_TMP3, 0, 10, 0, 10, 0, 0, "Z(Mb,jI)");
542
dpd_buf4_sort(&Z, CC_TMP4, pqsr, 10, 0, "Z(Mb,Ij)");
544
dpd_buf4_init(&Z, CC_TMP4, 0, 10, 0, 10, 0, 0, "Z(Mb,Ij)");
545
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
546
dpd_buf4_axpy(&Z, &W, 1.0);
550
/** <Mn|Ie> t_jn^be **/
551
dpd_buf4_init(&I, CC_TMP1, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
552
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
553
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(MI,jb)");
554
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
555
dpd_buf4_sort(&Z, CC_TMP3, psrq, 10, 0, "Z(Mb,jI)");
559
dpd_buf4_init(&Z, CC_TMP3, 0, 10, 0, 10, 0, 0, "Z(Mb,jI)");
560
dpd_buf4_sort(&Z, CC_TMP4, pqsr, 10, 0, "Z(Mb,Ij)");
562
dpd_buf4_init(&Z, CC_TMP4, 0, 10, 0, 10, 0, 0, "Z(Mb,Ij)");
563
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
564
dpd_buf4_axpy(&Z, &W, 1.0);
568
/** <mn||ie> t_Jn^Be **/
569
dpd_buf4_init(&I, CC_TMP0, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
570
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
571
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(mi,JB)");
572
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
573
dpd_buf4_sort(&Z, CC_TMP3, psrq, 10, 0, "Z(mB,Ji)");
577
dpd_buf4_init(&Z, CC_TMP3, 0, 10, 0, 10, 0, 0, "Z(mB,Ji)");
578
dpd_buf4_sort(&Z, CC_TMP4, pqsr, 10, 0, "Z(mB,iJ)");
580
dpd_buf4_init(&Z, CC_TMP4, 0, 10, 0, 10, 0, 0, "Z(mB,iJ)");
581
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
582
dpd_buf4_axpy(&Z, &W, 1.0);
586
/** <mN|iE> t_JN^BE **/
587
dpd_buf4_init(&I, CC_TMP1, 0, 0, 10, 0, 10, 0, "I(MI,NE)");
588
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
589
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(mi,JB)");
590
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
591
dpd_buf4_sort(&Z, CC_TMP3, psrq, 10, 0, "Z(mB,Ji)");
595
dpd_buf4_init(&Z, CC_TMP3, 0, 10, 0, 10, 0, 0, "Z(mB,Ji)");
596
dpd_buf4_sort(&Z, CC_TMP4, pqsr, 10, 0, "Z(mB,iJ)");
598
dpd_buf4_init(&Z, CC_TMP4, 0, 10, 0, 10, 0, 0, "Z(mB,iJ)");
599
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
600
dpd_buf4_axpy(&Z, &W, 1.0);
603
} /** RHF or ROHF **/
604
else if(params.ref == 2) { /** UHF **/
606
dpd_buf4_init(&Z, CC_TMP0, 0, 0, 20, 0, 20, 0, "Z(MI,JB)");
608
/** <MN||IE> t_JN^BE **/
609
dpd_buf4_init(&I, CC_TMP0, 0, 0, 20, 0, 20, 0, "<MN||IE> (MI,NE)");
610
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
611
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
615
/** <Mn|Ie> t_Jn^Be **/
616
dpd_buf4_init(&I, CC_TMP0, 0, 0, 30, 0, 30, 0, "<Mn|Ie> (MI,ne)");
617
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
618
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 1.0);
622
/** Z(MI,JB) --> Z(MB,IJ) **/
623
dpd_buf4_sort(&Z, CC_TMP0, psqr, 20, 0, "Z(MB,IJ)");
626
/** Z(MB,IJ) = Z(MB,IJ) - Z(MB,JI) **/
627
dpd_buf4_init(&Z1, CC_TMP0, 0, 20, 0, 20, 0, 0, "Z(MB,IJ)");
628
dpd_buf4_sort(&Z1, CC_TMP0, pqsr, 20, 0, "Z(MB,JI)");
629
dpd_buf4_init(&Z2, CC_TMP0, 0, 20, 0, 20, 0, 0, "Z(MB,JI)");
630
dpd_buf4_axpy(&Z2, &Z1, -1.0);
633
/** Z(MB,IJ) --> W(MB,IJ) **/
634
dpd_buf4_init(&W, CC_HBAR, 0, 20, 0, 20, 2, 0, "WMBIJ");
635
dpd_buf4_axpy(&Z1, &W, 1.0);
640
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 30, 10, 30, 0, "Z(mi,jb)");
642
/** <mn||ie> t_jn^be **/
643
dpd_buf4_init(&I, CC_TMP0, 0, 10, 30, 10, 30, 0, "<mn||ie> (mi,ne)");
644
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
645
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
649
/** <mN||iE> t_jN^bE **/
650
dpd_buf4_init(&I, CC_TMP0, 0, 10, 20, 10, 20, 0, "<mN|iE> (mi,NE)");
651
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
652
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 1.0);
656
/** Z(mi,jb) --> Z(mb,ij) **/
657
dpd_buf4_sort(&Z, CC_TMP0, psqr, 30, 10, "Z(mb,ij)");
660
/** Z(mb,ij) = Z(mb,ij) - Z(mb,ji) **/
661
dpd_buf4_init(&Z1, CC_TMP0, 0, 30, 10, 30, 10, 0, "Z(mb,ij)");
662
dpd_buf4_sort(&Z1, CC_TMP0, pqsr, 30, 10, "Z(mb,ji)");
663
dpd_buf4_init(&Z2, CC_TMP0, 0, 30, 10, 30, 10, 0, "Z(mb,ji)");
664
dpd_buf4_axpy(&Z2, &Z1, -1.0);
667
/** Z(mb,ij) --> W(mb,ij) **/
668
dpd_buf4_init(&W, CC_HBAR, 0, 30, 10, 30, 12, 0, "Wmbij");
669
dpd_buf4_axpy(&Z1, &W, 1.0);
674
dpd_buf4_init(&Z, CC_TMP0, 0, 0, 30, 0, 30, 0, "Z(MI,jb)");
676
/** <MN||IE> t_jN^bE **/
677
dpd_buf4_init(&I, CC_TMP0, 0, 0, 20, 0, 20, 0, "<MN||IE> (MI,NE)");
678
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
679
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
683
/** <Mn|Ie> t_jn^be **/
684
dpd_buf4_init(&I, CC_TMP0, 0, 0, 30, 0, 30, 0, "<Mn|Ie> (MI,ne)");
685
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
686
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 1.0);
690
/** Z(MI,jb) --> Z(Mb,Ij) **/
691
dpd_buf4_sort(&Z, CC_TMP0, psqr, 24, 22, "Z(Mb,Ij)");
695
/** -<Mn|Ej> t_In^Eb **/
696
dpd_buf4_init(&Z, CC_TMP0, 0, 22, 24, 22, 24, 0, "Z(Mj,Ib)");
697
dpd_buf4_init(&I, CC_EINTS, 0, 22, 26, 22, 26, 0, "E <Ij|Ak>");
698
dpd_buf4_init(&T2, CC_TAMPS, 0, 24, 26, 24, 26, 0, "tIbAj");
699
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 0.0);
703
dpd_buf4_sort(&Z, CC_TMP0, psrq, 24, 22, "Z1(Mb,Ij)");
706
/** Z(Mb,Ij) --> W(Mb,Ij) **/
707
dpd_buf4_init(&Z, CC_TMP0, 0, 24, 22, 24, 22, 0, "Z(Mb,Ij)");
708
dpd_buf4_init(&Z1, CC_TMP0, 0, 24, 22, 24, 22, 0, "Z1(Mb,Ij)");
709
dpd_buf4_axpy(&Z1, &Z, 1.0);
711
dpd_buf4_init(&W, CC_HBAR, 0, 24, 22, 24, 22, 0, "WMbIj");
712
dpd_buf4_axpy(&Z, &W, 1.0);
717
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 20, 10, 20, 0, "Z(mi,JB)");
719
/** <mn||ie> t_Jn^Be **/
720
dpd_buf4_init(&I, CC_TMP0, 0, 10, 30, 10, 30, 0, "<mn||ie> (mi,ne)");
721
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
722
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 0.0);
726
/** <mN|iE> t_JN^BE **/
727
dpd_buf4_init(&I, CC_TMP0, 0, 10, 20, 10, 20, 0, "<mN|iE> (mi,NE)");
728
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
729
dpd_contract444(&I, &T2, &Z, 0, 0, 1.0, 1.0);
733
/** Z(mi,JB) --> Z(mB,iJ) **/
734
dpd_buf4_sort(&Z, CC_TMP0, psqr, 27, 23, "Z(mB,iJ)");
737
/** Z(mB,iJ) --> W(mB,iJ) **/
738
dpd_buf4_init(&Z, CC_TMP0, 0, 27, 23, 27, 23, 0, "Z(mB,iJ)");
739
dpd_buf4_init(&W, CC_HBAR, 0, 27, 23, 27, 23, 0, "WmBiJ");
740
dpd_buf4_axpy(&Z, &W, 1.0);
745
/** -<mN|eJ> t_iN^eB **/
746
dpd_buf4_init(&Z, CC_TMP0, 0, 23, 27, 23, 27, 0, "Z(mJ,iB)");
747
dpd_buf4_init(&I, CC_EINTS, 0, 23, 25, 23, 25, 0, "E <iJ|aK>");
748
dpd_buf4_init(&T2, CC_TAMPS, 0, 27, 25, 27, 25, 0, "tiBaJ");
749
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 0.0);
753
dpd_buf4_sort(&Z, CC_TMP0, psrq, 27, 23, "Z(mB,iJ)");
756
dpd_buf4_init(&Z, CC_TMP0, 0, 27, 23, 27, 23, 0, "Z(mB,iJ)");
757
dpd_buf4_init(&W, CC_HBAR, 0, 27, 23, 27, 23, 0, "WmBiJ");
758
dpd_buf4_axpy(&Z, &W, 1.0);
765
if(params.ref == 1) { /** RHF or ROHF **/
767
/* Sort <ai||jk> integrals for remaining E*T2 contributions */
768
/** THIS IS NOT ACTUALLY NECESSARY! FIX THESE CONTRACTIONS! (11/14/01) **/
769
dpd_buf4_init(&I, CC_EINTS, 0, 11, 0, 11, 0, 0, "E <ai|jk>");
770
dpd_buf4_sort(&I, CC_TMP0, rspq, 0, 11, "I(Mn,Ej)");
772
dpd_buf4_init(&I, CC_TMP0, 0, 0, 11, 0, 11, 0, "I(Mn,Ej)");
773
dpd_buf4_sort(&I, CC_TMP1, psrq, 0, 11, "I(Mj,En)");
777
/** -<Mn|Ej> t_In^EB **/ /** Can be written as: - <Mj|En> t_In^Eb !! **/
778
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
779
dpd_buf4_sort(&T2, CC_TMP0, psrq, 10, 11, "T2(Ib,En)");
781
dpd_buf4_init(&I, CC_TMP1, 0, 0, 11, 0, 11, 0, "I(Mj,En)");
782
dpd_buf4_init(&T2, CC_TMP0, 0, 10, 11, 10, 11, 0, "T2(Ib,En)");
783
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(Mj,Ib)");
784
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 0.0);
785
dpd_buf4_sort(&Z, CC_TMP0, psrq, 10, 0, "Z(Mb,Ij)");
789
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 0, 10, 0, 0, "Z(Mb,Ij)");
790
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
791
dpd_buf4_axpy(&Z, &W, 1.0);
796
/** -<mN|eJ> t_iN^eB **/ /** Can be written as: -<mJ|eN> t_iN^Eb !! **/
797
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
798
dpd_buf4_sort(&T2, CC_TMP0, psrq, 10, 11, "T2(iB,eN)");
800
dpd_buf4_init(&I, CC_TMP1, 0, 0, 11, 0, 11, 0, "I(Mj,En)");
801
dpd_buf4_init(&T2, CC_TMP0, 0, 10, 11, 10, 11, 0, "T2(iB,eN)");
802
dpd_buf4_init(&Z, CC_TMP2, 0, 0, 10, 0, 10, 0, "Z(mJ,iB)");
803
dpd_contract444(&I, &T2, &Z, 0, 0, -1.0, 0.0);
804
dpd_buf4_sort(&Z, CC_TMP0, psrq, 10, 0, "Z(mB,iJ)");
808
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 0, 10, 0, 0, "Z(mB,iJ)");
809
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
810
dpd_buf4_axpy(&Z, &W, 1.0);
815
/** Prepare intermediates for final term of Wmbij **/
817
if(params.ref == 0) { /** RHF **/
819
/* Z(ME,jb) = { <Mb|Ej> + t_jN^bF [2 <Mn|Ef> - <Mn|Fe>] - t_jN^Fb <Mn|Ef> } */
820
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(ME,jb)");
822
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D 2<ij|ab> - <ij|ba> (ia,jb)");
823
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
824
dpd_contract444(&D, &T2, &Z, 0, 0, 1, 0);
828
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
829
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIbjA");
830
dpd_contract444(&D, &T2, &Z, 0, 0, -1, 1);
834
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
835
dpd_buf4_axpy(&D, &Z, 1);
838
/* W(Mb,Ij) <-- Z(ME,jb) t_I^E */
839
dpd_buf4_init(&Z1, CC_TMP0, 0, 0, 10, 0, 10, 0, "Z(MI,jb)");
840
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
841
dpd_contract424(&Z, &T1, &Z1, 1, 1, 1, 1, 0);
842
dpd_file2_close(&T1);
845
dpd_buf4_sort_axpy(&Z1, CC_HBAR, psqr, 10, 0, "WMbIj", 1);
848
/* Z(Me,Ib) = { - <Mb|Ie> + t_In^Fb <Mn|Fe> } */
849
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(Me,Ib)");
850
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIbjA");
851
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
852
dpd_contract444(&D, &T2, &Z, 0, 0, 1, 0);
857
dpd_buf4_init(&C, CC_CINTS, 0, 11, 10, 11, 10, 0, "C <ia|jb> (bi,ja)");
858
dpd_buf4_sort_axpy(&C, CC_TMP0, qprs, 10, 10, "Z(Me,Ib)", -1);
861
/* W(Mb,Ij) <-- Z(Me,Ib) t_j^e */
862
dpd_buf4_init(&Z1, CC_TMP0, 0, 0, 10, 0, 10, 0, "Z(Mj,Ib)");
863
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(Me,Ib)");
864
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
865
dpd_contract424(&Z, &T1, &Z1, 1, 1, 1, 1, 0);
866
dpd_file2_close(&T1);
869
dpd_buf4_sort_axpy(&Z1, CC_HBAR, psrq, 10, 0, "WMbIj", -1);
873
else if(params.ref == 1) { /** ROHF **/
875
/** t_JN^BF <MN||EF> --> Z_MBJE **/
876
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(ME,JB)");
877
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
878
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
879
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 0.0);
882
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
883
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
884
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 1.0);
887
dpd_buf4_sort(&Z, CC_TMP1, psrq, 10, 10, "Z(MB,JE)");
890
/** t_I^E ( <MB||JE> + Z1_MBJE ) --> Z2_MBIJ **/
891
dpd_buf4_init(&Z1, CC_TMP1, 0, 10, 10, 10, 10, 0, "Z(MB,JE)");
892
dpd_buf4_init(&C, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
893
dpd_buf4_axpy(&C, &Z1, -1.0);
895
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
896
dpd_buf4_init(&Z2, CC_TMP0, 0, 10, 0, 10, 0, 0, "Z1(MB,JI)");
897
dpd_contract424(&Z1, &T1, &Z2, 3, 1, 0, 1.0, 0.0);
898
dpd_file2_close(&T1);
900
dpd_buf4_sort(&Z2, CC_TMP1, pqsr, 10, 0, "Z2(MB,IJ)");
903
/** Z1_MBJI(TMP0) - Z2_MBIJ(TMP1) --> W_MBIJ **/
904
dpd_buf4_init(&Z1, CC_TMP0, 0, 10, 0, 10, 0, 0, "Z1(MB,JI)");
905
dpd_buf4_init(&Z2, CC_TMP1, 0, 10, 0, 10, 0, 0, "Z2(MB,IJ)");
906
dpd_buf4_axpy(&Z1, &Z2, -1.0);
908
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 2, 0, "WMBIJ");
909
dpd_buf4_axpy(&Z2, &W, 1.0);
913
/** t_jn^bf <mn||ef> --> Z_mbje **/
914
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(me,jb)");
915
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
916
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
917
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 0.0);
920
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
921
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
922
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 1.0);
925
dpd_buf4_sort(&Z, CC_TMP1, psrq, 10, 10, "Z(mb,je)");
928
/** t_i^e ( <mb||je> + Z1_mbje ) --> Z2_mbij **/
929
dpd_buf4_init(&Z1, CC_TMP1, 0, 10, 10, 10, 10, 0, "Z(mb,je)");
930
dpd_buf4_init(&C, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
931
dpd_buf4_axpy(&C, &Z1, -1.0);
933
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
934
dpd_buf4_init(&Z2, CC_TMP0, 0, 10, 0, 10, 0, 0, "Z1(mb,ji)");
935
dpd_contract424(&Z1, &T1, &Z2, 3, 1, 0, 1.0, 0.0);
936
dpd_file2_close(&T1);
938
dpd_buf4_sort(&Z2, CC_TMP1, pqsr, 10, 0, "Z2(mb,ij)");
941
/** Z1_mbji(TMP0) - Z2_mbij(TMP1) --> W_mbij **/
942
dpd_buf4_init(&Z1, CC_TMP0, 0, 10, 0, 10, 0, 0, "Z1(mb,ji)");
943
dpd_buf4_init(&Z2, CC_TMP1, 0, 10, 0, 10, 0, 0, "Z2(mb,ij)");
944
dpd_buf4_axpy(&Z1, &Z2, -1.0);
946
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 2, 0, "Wmbij");
947
dpd_buf4_axpy(&Z2, &W, 1.0);
952
/** <Mn|Ef> t_jn^bf + <MN||EF> t_jN^bF --> Z1_MEjb(TMP0) **/
953
dpd_buf4_init(&Z1, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z1(ME,jb)");
954
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
955
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
956
dpd_contract444(&D, &T2, &Z1, 0, 0, 1.0, 0.0);
959
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
960
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
961
dpd_contract444(&D, &T2, &Z1, 0, 0, 1.0, 1.0);
966
/** <Mn|Fe> t_In^Fb --> Z2_MeIb (TMP3) **/
967
dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
968
dpd_buf4_sort(&D, CC_TMP1, psrq, 10, 11, "D(Me,Fn)");
970
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
971
dpd_buf4_sort(&T2, CC_TMP2, psrq, 10, 11, "T2(Ib,Fn)");
973
dpd_buf4_init(&Z2, CC_TMP3, 0, 10, 10, 10, 10, 0, "Z(Me,Ib)");
974
dpd_buf4_init(&T2, CC_TMP2, 0, 10, 11, 10, 11, 0, "T2(Ib,Fn)");
975
dpd_buf4_init(&D, CC_TMP1, 0, 10, 11, 10, 11, 0, "D(Me,Fn)");
976
dpd_contract444(&D, &T2, &Z2, 0, 0, 1.0, 0.0);
981
dpd_buf4_init(&Z1, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z1(ME,jb)");
982
dpd_buf4_sort(&Z1, CC_TMP1, psrq, 10, 10, "Z1(Mb,jE)");
984
dpd_buf4_init(&Z2, CC_TMP3, 0, 10, 10, 10, 10, 0, "Z(Me,Ib)");
985
dpd_buf4_sort(&Z2, CC_TMP0, psrq, 10, 10, "Z(Mb,Ie)");
988
/** t_I^E ( <Mj|Eb> + Z(Mb,jE)(TMP1) ) --> Z(Mb,jI)(TMP1) **/
989
dpd_buf4_init(&Z1, CC_TMP1, 0, 10, 10, 10, 10, 0, "Z1(Mb,jE)");
990
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
991
dpd_buf4_axpy(&D, &Z1, 1.0);
993
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
994
dpd_buf4_init(&Z, CC_TMP2, 0, 10, 0, 10, 0, 0, "Z(Mb,jI)");
995
dpd_contract424(&Z1, &T1, &Z, 3, 1, 0, 1.0, 0.0);
996
dpd_file2_close(&T1);
998
dpd_buf4_sort(&Z, CC_TMP1, pqsr, 10, 0, "Z(Mb,Ij)");
1001
/** t_j^e ( <Mb|Ie> - Z(Mb,Ie)(TMP0) ) --> Z(Mb,Ij)(TMP2) **/
1002
dpd_buf4_init(&Z1, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(Mb,Ie)");
1003
dpd_buf4_init(&C, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
1004
dpd_buf4_axpy(&C, &Z1, -1.0);
1006
dpd_buf4_scm(&Z1, -1.0);
1007
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
1008
dpd_buf4_init(&Z, CC_TMP2, 0, 10, 0, 10, 0, 0, "Z(Mb,Ij)");
1009
dpd_contract424(&Z1, &T1, &Z, 3, 1, 0, 1.0, 0.0);
1010
dpd_file2_close(&T1);
1011
dpd_buf4_close(&Z1);
1014
/** Z(Mb,Ij) (TMP1) + Z(Mb,Ij) (TMP2) --> W_MbIj **/
1015
dpd_buf4_init(&Z1, CC_TMP1, 0, 10, 0, 10, 0, 0, "Z(Mb,Ij)");
1016
dpd_buf4_init(&Z2, CC_TMP2, 0, 10, 0, 10, 0, 0, "Z(Mb,Ij)");
1017
dpd_buf4_axpy(&Z2, &Z1, 1.0);
1018
dpd_buf4_close(&Z2);
1019
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
1020
dpd_buf4_axpy(&Z1, &W, 1.0);
1021
dpd_buf4_close(&Z1);
1024
/** t_JN^BF <mN|eF> + t_Jn^Bf <mn||ef> --> Z(mB,Je) (TMP1) **/
1025
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(me,JB)");
1026
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
1027
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
1028
dpd_contract444(&D, &T2, &Z, 0 , 0, 1.0, 0.0);
1029
dpd_buf4_close(&T2);
1031
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
1032
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
1033
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 1.0);
1034
dpd_buf4_close(&T2);
1036
dpd_buf4_sort(&Z, CC_TMP1, psrq, 10, 10, "Z(mB,Je)");
1039
/** -t_Ni^Bf <mN|fE> --> Z(mB,iE) (TMP0) **/
1040
dpd_buf4_init(&Z, CC_TMP2, 0, 10, 10, 10, 10, 0, "Z(mE,iB)");
1041
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
1042
dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tjAIb");
1043
dpd_contract444(&D, &T2, &Z, 0, 0, -1.0, 0.0);
1044
dpd_buf4_close(&T2);
1046
dpd_buf4_sort(&Z, CC_TMP0, psrq, 10, 10, "Z(mB,iE)");
1049
/** t_i^e ( <mJ|eB> + Z(mB,Je) ) --> Z1(mB,iJ) (TMP1) **/
1050
dpd_buf4_init(&Z, CC_TMP1, 0, 10, 10, 10, 10, 0, "Z(mB,Je)");
1051
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
1052
dpd_buf4_axpy(&D, &Z, 1.0);
1054
dpd_buf4_init(&Z1, CC_TMP2, 0, 10, 0, 10, 0, 0, "Z(mB,Ji)");
1055
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
1056
dpd_contract424(&Z, &T1, &Z1, 3, 1, 0, 1.0, 0.0);
1057
dpd_file2_close(&T1);
1059
dpd_buf4_sort(&Z1, CC_TMP1, pqsr, 10, 0, "Z1(mB,iJ)");
1060
dpd_buf4_close(&Z1);
1062
/** t_J^E ( <mB|iE> + Z(mB,iE) ) + Z1(mB,Ij) (TMP1) --> Z2(mB,iJ) (TMP2) **/
1063
dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(mB,iE)");
1064
dpd_buf4_init(&C, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
1065
dpd_buf4_axpy(&C, &Z, 1.0);
1067
dpd_buf4_init(&Z2, CC_TMP2, 0, 10, 0, 10, 0, 0, "Z2(mB,iJ)");
1068
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
1069
dpd_contract424(&Z, &T1, &Z2, 3, 1, 0, 1.0, 0.0);
1070
dpd_file2_close(&T1);
1072
dpd_buf4_init(&Z1, CC_TMP1, 0, 10, 0, 10, 0, 0, "Z1(mB,iJ)");
1073
dpd_buf4_axpy(&Z1, &Z2, 1.0);
1074
dpd_buf4_close(&Z1);
1076
/** Z2(mB,iJ) --> W_mBiJ **/
1077
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
1078
dpd_buf4_axpy(&Z2, &W, 1.0);
1080
dpd_buf4_close(&Z2);
1081
} /** RHF or ROHF **/
1082
else if(params.ref == 2) { /** UHF **/
1084
/** t_JN^BF <MN||EF> --> Z_MBJE **/
1085
dpd_buf4_init(&Z, CC_TMP0, 0, 20, 20, 20, 20, 0, "Z(ME,JB)");
1086
dpd_buf4_init(&D, CC_DINTS, 0, 20, 20, 20, 20, 0, "D <IJ||AB> (IA,JB)");
1087
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
1088
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 0.0);
1089
dpd_buf4_close(&T2);
1091
dpd_buf4_init(&D, CC_DINTS, 0, 20, 30, 20, 30, 0, "D <Ij|Ab> (IA,jb)");
1092
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
1093
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 1.0);
1094
dpd_buf4_close(&T2);
1096
dpd_buf4_sort(&Z, CC_TMP0, psrq, 20, 20, "Z(MB,JE)");
1099
/** t_I^E ( <MB||JE> + Z1_MBJE ) --> Z2_MBIJ **/
1100
dpd_buf4_init(&Z1, CC_TMP0, 0, 20, 20, 20, 20, 0, "Z(MB,JE)");
1101
dpd_buf4_init(&C, CC_CINTS, 0, 20, 20, 20, 20, 0, "C <IA||JB>");
1102
dpd_buf4_axpy(&C, &Z1, -1.0);
1104
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
1105
dpd_buf4_init(&Z2, CC_TMP0, 0, 20, 0, 20, 0, 0, "Z1(MB,JI)");
1106
dpd_contract424(&Z1, &T1, &Z2, 3, 1, 0, 1.0, 0.0);
1107
dpd_file2_close(&T1);
1108
dpd_buf4_close(&Z1);
1109
dpd_buf4_sort(&Z2, CC_TMP0, pqsr, 20, 0, "Z2(MB,IJ)");
1110
dpd_buf4_close(&Z2);
1112
/** Z1_MBJI - Z2_MBIJ --> W_MBIJ **/
1113
dpd_buf4_init(&Z1, CC_TMP0, 0, 20, 0, 20, 0, 0, "Z1(MB,JI)");
1114
dpd_buf4_init(&Z2, CC_TMP0, 0, 20, 0, 20, 0, 0, "Z2(MB,IJ)");
1115
dpd_buf4_axpy(&Z1, &Z2, -1.0);
1116
dpd_buf4_close(&Z1);
1117
dpd_buf4_init(&W, CC_HBAR, 0, 20, 0, 20, 2, 0, "WMBIJ");
1118
dpd_buf4_axpy(&Z2, &W, 1.0);
1119
dpd_buf4_close(&Z2);
1122
/** t_jn^bf <mn||ef> --> Z_mbje **/
1123
dpd_buf4_init(&Z, CC_TMP0, 0, 30, 30, 30, 30, 0, "Z(me,jb)");
1124
dpd_buf4_init(&D, CC_DINTS, 0, 30, 30, 30, 30, 0, "D <ij||ab> (ia,jb)");
1125
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
1126
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 0.0);
1127
dpd_buf4_close(&T2);
1129
dpd_buf4_init(&D, CC_DINTS, 0, 30, 20, 30, 20, 0, "D <Ij|Ab> (ia,JB)");
1130
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
1131
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 1.0);
1132
dpd_buf4_close(&T2);
1134
dpd_buf4_sort(&Z, CC_TMP0, psrq, 30, 30, "Z(mb,je)");
1137
/** t_i^e ( <mb||je> + Z1_mbje ) --> Z2_mbij **/
1138
dpd_buf4_init(&Z1, CC_TMP0, 0, 30, 30, 30, 30, 0, "Z(mb,je)");
1139
dpd_buf4_init(&C, CC_CINTS, 0, 30, 30, 30, 30, 0, "C <ia||jb>");
1140
dpd_buf4_axpy(&C, &Z1, -1.0);
1142
dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
1143
dpd_buf4_init(&Z2, CC_TMP0, 0, 30, 10, 30, 10, 0, "Z1(mb,ji)");
1144
dpd_contract424(&Z1, &T1, &Z2, 3, 1, 0, 1.0, 0.0);
1145
dpd_file2_close(&T1);
1146
dpd_buf4_close(&Z1);
1147
dpd_buf4_sort(&Z2, CC_TMP0, pqsr, 30, 10, "Z2(mb,ij)");
1148
dpd_buf4_close(&Z2);
1150
/** Z1_mbji - Z2_mbij --> W_mbij **/
1151
dpd_buf4_init(&Z1, CC_TMP0, 0, 30, 10, 30, 10, 0, "Z1(mb,ji)");
1152
dpd_buf4_init(&Z2, CC_TMP0, 0, 30, 10, 30, 10, 0, "Z2(mb,ij)");
1153
dpd_buf4_axpy(&Z1, &Z2, -1.0);
1154
dpd_buf4_close(&Z1);
1155
dpd_buf4_init(&W, CC_HBAR, 0, 30, 10, 30, 12, 0, "Wmbij");
1156
dpd_buf4_axpy(&Z2, &W, 1.0);
1157
dpd_buf4_close(&Z2);
1161
/** <Mn|Ef> t_jn^bf + <MN||EF> t_jN^bF --> Z1_MEjb **/
1162
dpd_buf4_init(&Z, CC_TMP0, 0, 20, 30, 20, 30, 0, "Z(ME,jb)");
1163
dpd_buf4_init(&D, CC_DINTS, 0, 20, 30, 20, 30, 0, "D <Ij|Ab> (IA,jb)");
1164
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
1165
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 0.0);
1166
dpd_buf4_close(&T2);
1169
dpd_buf4_init(&D, CC_DINTS, 0, 20, 20, 20, 20, 0, "D <IJ||AB> (IA,JB)");
1170
dpd_buf4_init(&T2, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
1171
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 1.0);
1172
dpd_buf4_close(&T2);
1174
dpd_buf4_sort(&Z, CC_TMP0, psrq, 24, 27, "Z(Mb,jE)");
1178
/** <Mn|Fe> t_In^Fb --> Z2_MeIb **/
1179
dpd_buf4_init(&Z, CC_TMP0, 0, 24, 24, 24, 24, 0, "Z(Me,Ib)");
1180
dpd_buf4_init(&D, CC_DINTS, 0, 24, 27, 24, 27, 0, "D <Ij|Ab> (Ib,jA)");
1181
dpd_buf4_init(&T2, CC_TAMPS, 0, 24, 27, 24, 27, 0, "tIbjA");
1182
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 0.0);
1184
dpd_buf4_close(&T2);
1185
dpd_buf4_sort(&Z, CC_TMP0, psrq, 24, 24, "Z(Mb,Ie)");
1189
/** t_I^E ( <Mj|Eb> + Z(Mb,jE) ) --> Z(Mb,jI) **/
1190
dpd_buf4_init(&Z1, CC_TMP0, 0, 24, 27, 24, 27, 0, "Z(Mb,jE)");
1191
dpd_buf4_init(&D, CC_DINTS, 0, 24, 27, 24, 27, 0, "D <Ij|Ab> (Ib,jA)");
1192
dpd_buf4_axpy(&D, &Z1, 1.0);
1194
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
1195
dpd_buf4_init(&Z, CC_TMP0, 0, 24, 23, 24, 23, 0, "Z(Mb,jI)");
1196
dpd_contract424(&Z1, &T1, &Z, 3, 1, 0, 1.0, 0.0);
1197
dpd_file2_close(&T1);
1198
dpd_buf4_close(&Z1);
1199
dpd_buf4_sort(&Z, CC_TMP0, pqsr, 24, 22, "Z1(Mb,Ij)");
1202
/** t_j^e ( <Mb|Ie> - Z(Mb,Ie) ) --> Z(Mb,Ij) **/
1203
dpd_buf4_init(&Z1, CC_TMP0, 0, 24, 24, 24, 24, 0, "Z(Mb,Ie)");
1204
dpd_buf4_init(&C, CC_CINTS, 0, 24, 24, 24, 24, 0, "C <Ia|Jb>");
1205
dpd_buf4_axpy(&C, &Z1, -1.0);
1207
dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
1208
dpd_buf4_init(&Z, CC_TMP0, 0, 24, 22, 24, 22, 0, "Z2(Mb,Ij)");
1209
dpd_contract424(&Z1, &T1, &Z, 3, 1, 0, 1.0, 0.0);
1210
dpd_file2_close(&T1);
1211
dpd_buf4_close(&Z1);
1214
/** Z(Mb,Ij) (TMP1) + Z(Mb,Ij) (TMP2) --> W_MbIj **/
1215
dpd_buf4_init(&Z1, CC_TMP0, 0, 24, 22, 24, 22, 0, "Z1(Mb,Ij)");
1216
dpd_buf4_init(&Z2, CC_TMP0, 0, 24, 22, 24, 22, 0, "Z2(Mb,Ij)");
1217
dpd_buf4_axpy(&Z2, &Z1, -1.0);
1218
dpd_buf4_close(&Z2);
1219
dpd_buf4_init(&W, CC_HBAR, 0, 24, 22, 24, 22, 0, "WMbIj");
1220
dpd_buf4_axpy(&Z1, &W, 1.0);
1221
dpd_buf4_close(&Z1);
1226
/** t_JN^BF <mN|eF> + t_Jn^Bf <mn||ef> --> Z(mB,Je) **/
1227
dpd_buf4_init(&Z, CC_TMP0, 0, 30, 20, 30, 20, 0, "Z(me,JB)");
1228
dpd_buf4_init(&D, CC_DINTS, 0, 30, 20, 30, 20, 0, "D <Ij|Ab> (ia,JB)");
1229
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
1230
dpd_contract444(&D, &T2, &Z, 0 , 0, 1.0, 0.0);
1231
dpd_buf4_close(&T2);
1233
dpd_buf4_init(&D, CC_DINTS, 0, 30, 30, 30, 30, 0, "D <ij||ab> (ia,jb)");
1234
dpd_buf4_init(&T2, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
1235
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 1.0);
1236
dpd_buf4_close(&T2);
1238
dpd_buf4_sort(&Z, CC_TMP0, psrq, 27, 24, "Z(mB,Je)");
1241
/** t_Ni^Bf <mN|fE> --> Z(mB,iE) **/
1242
dpd_buf4_init(&Z, CC_TMP0, 0, 27, 27, 27, 27, 0, "Z(mE,iB)");
1243
dpd_buf4_init(&D, CC_DINTS, 0, 27, 24, 27, 24, 0, "D <iJ|aB> (iB,Ja)");
1244
dpd_buf4_init(&T2, CC_TAMPS, 0, 27, 24, 27, 24, 0, "tjAIb");
1245
dpd_contract444(&D, &T2, &Z, 0, 0, 1.0, 0.0);
1246
dpd_buf4_close(&T2);
1248
dpd_buf4_sort(&Z, CC_TMP0, psrq, 27, 27, "Z(mB,iE)");
1251
/** t_i^e ( <mJ|eB> + Z(mB,Je) ) --> Z1(mB,iJ) **/
1252
dpd_buf4_init(&Z, CC_TMP0, 0, 27, 24, 27, 24, 0, "Z(mB,Je)");
1253
dpd_buf4_init(&D, CC_DINTS, 0, 27, 24, 27, 24, 0, "D <iJ|aB> (iB,Ja)");
1254
dpd_buf4_axpy(&D, &Z, 1.0);
1256
dpd_buf4_init(&Z1, CC_TMP0, 0, 27, 22, 27, 22, 0, "Z(mB,Ji)");
1257
dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
1258
dpd_contract424(&Z, &T1, &Z1, 3, 1, 0, 1.0, 0.0);
1259
dpd_file2_close(&T1);
1261
dpd_buf4_sort(&Z1, CC_TMP0, pqsr, 27, 23, "Z1(mB,iJ)");
1262
dpd_buf4_close(&Z1);
1264
/** -t_J^E ( -<mB|iE> + Z(mB,iE) ) + Z1(mB,Ij) --> Z1(mB,iJ) **/
1265
dpd_buf4_init(&Z, CC_TMP0, 0, 27, 27, 27, 27, 0, "Z(mB,iE)");
1266
dpd_buf4_init(&C, CC_CINTS, 0, 27, 27, 27, 27, 0, "C <iA|jB>");
1267
dpd_buf4_axpy(&C, &Z, -1.0);
1269
dpd_buf4_init(&Z2, CC_TMP0, 0, 27, 23, 27, 23, 0, "Z2(mB,iJ)");
1270
dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
1271
dpd_contract424(&Z, &T1, &Z2, 3, 1, 0, 1.0, 0.0);
1272
dpd_file2_close(&T1);
1274
dpd_buf4_init(&Z1, CC_TMP0, 0, 27, 23, 27, 23, 0, "Z1(mB,iJ)");
1275
dpd_buf4_axpy(&Z2, &Z1, -1.0);
1276
dpd_buf4_close(&Z2);
1278
/** Z2(mB,iJ) --> W_mBiJ **/
1279
dpd_buf4_init(&W, CC_HBAR, 0, 27, 23, 27, 23, 0, "WmBiJ");
1280
dpd_buf4_axpy(&Z1, &W, 1.0);
1281
dpd_buf4_close(&Z1);
1287
}} // namespace psi::cchbar