2
#include <libdpd/dpd.h>
6
/* F_build(): Constructs the one-electron HBAR matrix elements
7
** Fme, Fae, and Fmi. These are defined in spin-orbitals as
9
** Fme = f_me + t_n^f <mn||ef>
11
** Fae = f_ae - 1/2 f_me t_m^a + f_m^f <am||ef> - 1/2 taut_mn^af <mn||ef>
13
** Fmi = f_mi + 1/2 f_me t_i^e + t_n^e <mn||ie> + 1/2 taut_in^ef <mn||ef>
15
** where taut_ij^ab = t_ij^ab + 1/2 ( t_i^a t_j^b - t_i^b t_j^a )
17
** The standard named FAE, Fae, FMI, and Fmi are used for the complete
18
** matrix elements, while the names FAEt, Faet, FMIt, and Fmit are used for
19
** matrices with the diagonal elements removed.
21
** TDC, revised June 2002
26
dpdfile2 Faet, FAEt, Fmit, FMIt;
27
dpdfile2 Fae, FAE, FMI, Fmi;
28
dpdfile2 fab, fAB, fij, fIJ;
32
dpdbuf4 F_anti, F, E_anti, E, D_anti, D;
33
dpdbuf4 tautIJAB, tautijab, tautIjAb, taut;
35
if(params.ref == 0 || params.ref == 1) { /** RHF or ROHF **/
38
dpd_file2_init(&fIA, CC_OEI, 0, 0, 1, "fIA");
39
dpd_file2_copy(&fIA, CC_OEI, "FME");
40
dpd_file2_close(&fIA);
42
dpd_file2_init(&fia, CC_OEI, 0, 0, 1, "fia");
43
dpd_file2_copy(&fia, CC_OEI, "Fme");
44
dpd_file2_close(&fia);
46
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
47
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
49
dpd_buf4_init(&D_anti, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij||ab>");
50
dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
51
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
52
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
54
dpd_dot13(&tIA, &D_anti, &FME, 0, 0, 1.0, 1.0);
55
dpd_dot13(&tia, &D, &FME, 0, 0, 1.0, 1.0);
57
dpd_dot13(&tia, &D_anti, &Fme, 0, 0, 1.0, 1.0);
58
dpd_dot13(&tIA, &D, &Fme, 0, 0, 1.0, 1.0);
60
dpd_file2_close(&tIA);
61
dpd_file2_close(&tia);
62
dpd_buf4_close(&D_anti);
65
dpd_file2_close(&FME);
66
dpd_file2_close(&Fme);
70
dpd_file2_init(&fAB, CC_OEI, 0, 1, 1, "fAB");
71
dpd_file2_copy(&fAB, CC_OEI, "FAE");
72
dpd_file2_close(&fAB);
74
dpd_file2_init(&fab, CC_OEI, 0, 1, 1, "fab");
75
dpd_file2_copy(&fab, CC_OEI, "Fae");
76
dpd_file2_close(&fab);
78
dpd_file2_init(&FAE, CC_OEI, 0, 1, 1, "FAE");
79
dpd_file2_init(&Fae, CC_OEI, 0, 1, 1, "Fae");
81
dpd_file2_init(&fIA, CC_OEI, 0, 0, 1, "fIA");
82
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
83
dpd_contract222(&tIA, &fIA, &FAE, 1, 1, -0.5, 1);
84
dpd_file2_close(&tIA);
85
dpd_file2_close(&fIA);
87
dpd_file2_init(&fia, CC_OEI, 0, 0, 1, "fia");
88
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
89
dpd_contract222(&tia, &fia, &Fae, 1, 1, -0.5, 1);
90
dpd_file2_close(&tia);
91
dpd_file2_close(&fia);
93
dpd_buf4_init(&F_anti, CC_FINTS, 0, 10, 5, 10, 5, 1, "F <ia|bc>");
94
dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 0,"F <ia|bc>");
95
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
96
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
98
dpd_dot13(&tIA, &F_anti, &FAE, 0, 0, 1.0, 1.0);
99
dpd_dot13(&tia, &F, &FAE, 0, 0, 1.0, 1.0);
101
dpd_dot13(&tia, &F_anti, &Fae, 0, 0, 1.0, 1.0);
102
dpd_dot13(&tIA, &F, &Fae, 0, 0, 1.0, 1.0);
104
dpd_file2_close(&tIA);
105
dpd_file2_close(&tia);
106
dpd_buf4_close(&F_anti);
109
dpd_buf4_init(&D_anti, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
111
dpd_buf4_init(&tautIJAB, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tautIJAB");
112
dpd_buf4_init(&tautijab, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tautijab");
114
dpd_contract442(&tautIJAB, &D_anti, &FAE, 2, 2, -1, 1);
115
dpd_contract442(&tautijab, &D_anti, &Fae, 2, 2, -1, 1);
117
dpd_buf4_close(&D_anti);
118
dpd_buf4_close(&tautIJAB);
119
dpd_buf4_close(&tautijab);
121
dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
122
dpd_buf4_init(&tautIjAb, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tautIjAb");
124
dpd_contract442(&tautIjAb, &D, &Fae, 3, 3, -1, 1);
125
dpd_contract442(&tautIjAb, &D, &FAE, 2, 2, -1, 1);
128
dpd_buf4_close(&tautIjAb);
130
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
131
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
132
dpd_contract222(&tIA, &FME, &FAE, 1, 1, -0.5, 1);
133
dpd_file2_close(&tIA);
134
dpd_file2_close(&FME);
136
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
137
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
138
dpd_contract222(&tia, &Fme, &Fae, 1, 1, -0.5, 1);
139
dpd_file2_close(&tia);
140
dpd_file2_close(&Fme);
142
/* Form Fae and FAE tilde intermediates */
143
dpd_file2_copy(&FAE, CC_OEI, "FAEt");
144
dpd_file2_copy(&Fae, CC_OEI, "Faet");
146
dpd_file2_close(&FAE);
147
dpd_file2_close(&Fae);
152
dpd_file2_init(&fIJ, CC_OEI, 0, 0, 0, "fIJ");
153
dpd_file2_copy(&fIJ, CC_OEI, "FMI");
154
dpd_file2_close(&fIJ);
156
dpd_file2_init(&fij, CC_OEI, 0, 0, 0, "fij");
157
dpd_file2_copy(&fij, CC_OEI, "Fmi");
158
dpd_file2_close(&fij);
160
dpd_file2_init(&FMI, CC_OEI, 0, 0, 0, "FMI");
161
dpd_file2_init(&Fmi, CC_OEI, 0, 0, 0, "Fmi");
163
dpd_file2_init(&fIA, CC_OEI, 0, 0, 1, "fIA");
164
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
165
dpd_contract222(&fIA, &tIA, &FMI, 0, 0, 0.5, 1);
166
dpd_file2_close(&tIA);
167
dpd_file2_close(&fIA);
169
dpd_file2_init(&fia, CC_OEI, 0, 0, 1, "fia");
170
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
171
dpd_contract222(&fia, &tia, &Fmi, 0, 0, 0.5, 1);
172
dpd_file2_close(&tia);
173
dpd_file2_close(&fia);
175
dpd_buf4_init(&E_anti, CC_EINTS, 0, 11, 0, 11, 0, 1, "E <ai|jk>");
176
dpd_buf4_init(&E, CC_EINTS, 0, 11, 0, 11, 0, 0, "E <ai|jk>");
177
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
178
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
180
dpd_dot13(&tIA, &E_anti, &FMI, 1, 1, 1.0, 1.0);
181
dpd_dot13(&tia, &E, &FMI, 1, 1, 1.0, 1.0);
183
dpd_dot13(&tia, &E_anti, &Fmi, 1, 1, 1.0, 1.0);
184
dpd_dot13(&tIA, &E, &Fmi, 1, 1, 1.0, 1.0);
186
dpd_file2_close(&tIA);
187
dpd_file2_close(&tia);
188
dpd_buf4_close(&E_anti);
191
dpd_buf4_init(&D_anti, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <ij||ab> (ij,a>b)");
192
dpd_buf4_init(&tautIJAB, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tautIJAB");
193
dpd_buf4_init(&tautijab, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tautijab");
195
dpd_contract442(&D_anti, &tautIJAB, &FMI, 0, 0, 1, 1);
196
dpd_contract442(&D_anti, &tautijab, &Fmi, 0, 0, 1, 1);
198
dpd_buf4_close(&tautIJAB);
199
dpd_buf4_close(&tautijab);
200
dpd_buf4_close(&D_anti);
202
dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
203
dpd_buf4_init(&tautIjAb, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tautIjAb");
205
dpd_contract442(&D, &tautIjAb, &FMI, 0, 0, 1, 1);
206
dpd_contract442(&D, &tautIjAb, &Fmi, 1, 1, 1, 1);
208
dpd_buf4_close(&tautIjAb);
211
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
212
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
213
dpd_contract222(&FME, &tIA, &FMI, 0, 0, 0.5, 1);
214
dpd_file2_close(&FME);
215
dpd_file2_close(&tIA);
217
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
218
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
219
dpd_contract222(&Fme, &tia, &Fmi, 0, 0, 0.5, 1);
220
dpd_file2_close(&Fme);
221
dpd_file2_close(&tia);
223
/* FMI and Fmi tilde intermediates */
224
dpd_file2_copy(&FMI, CC_OEI, "FMIt");
225
dpd_file2_copy(&Fmi, CC_OEI, "Fmit");
227
dpd_file2_close(&FMI);
228
dpd_file2_close(&Fmi);
231
/* remove diagonal elements from Ft's */
232
dpd_file2_init(&Faet, CC_OEI, 0, 1, 1, "Faet");
233
dpd_file2_mat_init(&Faet);
234
dpd_file2_mat_rd(&Faet);
236
for(h=0; h < moinfo.nirreps; h++)
237
for(a=0; a < Faet.params->rowtot[h]; a++)
238
Faet.matrix[h][a][a] = 0.0;
240
dpd_file2_mat_wrt(&Faet);
241
dpd_file2_mat_close(&Faet);
242
dpd_file2_close(&Faet);
244
dpd_file2_init(&FAEt, CC_OEI, 0, 1, 1, "FAEt");
245
dpd_file2_mat_init(&FAEt);
246
dpd_file2_mat_rd(&FAEt);
248
for(h=0; h < moinfo.nirreps; h++)
249
for(a=0; a < FAEt.params->rowtot[h]; a++)
250
FAEt.matrix[h][a][a] = 0.0;
252
dpd_file2_mat_wrt(&FAEt);
253
dpd_file2_mat_close(&FAEt);
254
dpd_file2_close(&FAEt);
256
dpd_file2_init(&Fmit, CC_OEI, 0, 0, 0, "Fmit");
257
dpd_file2_mat_init(&Fmit);
258
dpd_file2_mat_rd(&Fmit);
260
for(h=0; h < moinfo.nirreps; h++)
261
for(a=0; a < Fmit.params->rowtot[h]; a++)
262
Fmit.matrix[h][a][a] = 0.0;
264
dpd_file2_mat_wrt(&Fmit);
265
dpd_file2_mat_close(&Fmit);
266
dpd_file2_close(&Fmit);
268
dpd_file2_init(&FMIt, CC_OEI, 0, 0, 0, "FMIt");
269
dpd_file2_mat_init(&FMIt);
270
dpd_file2_mat_rd(&FMIt);
272
for(h=0; h < moinfo.nirreps; h++)
273
for(a=0; a < FMIt.params->rowtot[h]; a++)
274
FMIt.matrix[h][a][a] = 0.0;
276
dpd_file2_mat_wrt(&FMIt);
277
dpd_file2_mat_close(&FMIt);
278
dpd_file2_close(&FMIt);
280
} /** RHF or ROHF **/
281
else if(params.ref == 2) { /** UHF **/
284
dpd_file2_init(&fIA, CC_OEI, 0, 0, 1, "fIA");
285
dpd_file2_copy(&fIA, CC_OEI, "FME");
286
dpd_file2_close(&fIA);
288
dpd_file2_init(&fia, CC_OEI, 0, 2, 3, "fia");
289
dpd_file2_copy(&fia, CC_OEI, "Fme");
290
dpd_file2_close(&fia);
292
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
293
dpd_file2_init(&Fme, CC_OEI, 0, 2, 3, "Fme");
295
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
296
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
298
dpd_buf4_init(&D, CC_DINTS, 0, 20, 20, 20, 20, 0, "D <IJ||AB> (IA,JB)");
299
dpd_contract422(&D, &tIA, &FME, 0, 0, 1, 1);
302
dpd_buf4_init(&D, CC_DINTS, 0, 20, 30, 20, 30, 0, "D <Ij|Ab> (IA,jb)");
303
dpd_contract422(&D, &tia, &FME, 0, 0, 1, 1);
306
dpd_buf4_init(&D, CC_DINTS, 0, 30, 30, 30, 30, 0, "D <ij||ab> (ia,jb)");
307
dpd_contract422(&D, &tia, &Fme, 0, 0, 1, 1);
310
dpd_buf4_init(&D, CC_DINTS, 0, 30, 20, 30, 20, 0, "D <Ij|Ab> (ia,JB)");
311
dpd_contract422(&D, &tIA, &Fme, 0, 0, 1, 1);
314
dpd_file2_close(&tIA);
315
dpd_file2_close(&tia);
317
dpd_file2_close(&FME);
318
dpd_file2_close(&Fme);
321
dpd_file2_init(&fAB, CC_OEI, 0, 1, 1, "fAB");
322
dpd_file2_copy(&fAB, CC_OEI, "FAE");
323
dpd_file2_close(&fAB);
325
dpd_file2_init(&fab, CC_OEI, 0, 3, 3, "fab");
326
dpd_file2_copy(&fab, CC_OEI, "Fae");
327
dpd_file2_close(&fab);
329
dpd_file2_init(&FAE, CC_OEI, 0, 1, 1, "FAE");
330
dpd_file2_init(&Fae, CC_OEI, 0, 3, 3, "Fae");
332
dpd_file2_init(&fIA, CC_OEI, 0, 0, 1, "fIA");
333
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
334
dpd_contract222(&tIA, &fIA, &FAE, 1, 1, -0.5, 1);
335
dpd_file2_close(&tIA);
336
dpd_file2_close(&fIA);
338
dpd_file2_init(&fia, CC_OEI, 0, 2, 3, "fia");
339
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
340
dpd_contract222(&tia, &fia, &Fae, 1, 1, -0.5, 1);
341
dpd_file2_close(&tia);
342
dpd_file2_close(&fia);
344
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
345
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
347
dpd_buf4_init(&F, CC_FINTS, 0, 20, 5, 20, 5, 1, "F <IA|BC>");
348
dpd_dot13(&tIA, &F, &FAE, 0, 0, 1, 1);
351
dpd_buf4_init(&F, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
352
dpd_dot13(&tia, &F, &FAE, 0, 0, 1, 1);
355
dpd_buf4_init(&F, CC_FINTS, 0, 30, 15, 30, 15, 1, "F <ia|bc>");
356
dpd_dot13(&tia, &F, &Fae, 0, 0, 1, 1);
359
dpd_buf4_init(&F, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
360
dpd_dot13(&tIA, &F, &Fae, 0, 0, 1, 1);
363
dpd_file2_close(&tIA);
364
dpd_file2_close(&tia);
366
dpd_buf4_init(&D, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <IJ||AB> (I>J,AB)");
367
dpd_buf4_init(&taut, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tautIJAB");
368
dpd_contract442(&taut, &D, &FAE, 3, 3, -1, 1);
369
dpd_buf4_close(&taut);
372
dpd_buf4_init(&D, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
373
dpd_buf4_init(&taut, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tautIjAb");
374
dpd_contract442(&taut, &D, &FAE, 2, 2, -1, 1);
375
dpd_buf4_close(&taut);
378
dpd_buf4_init(&D, CC_DINTS, 0, 12, 15, 12, 15, 0, "D <ij||ab> (i>j,ab)");
379
dpd_buf4_init(&taut, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tautijab");
380
dpd_contract442(&taut, &D, &Fae, 3, 3, -1, 1);
381
dpd_buf4_close(&taut);
384
dpd_buf4_init(&D, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
385
dpd_buf4_init(&taut, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tautIjAb");
386
dpd_contract442(&taut, &D, &Fae, 3, 3, -1, 1);
387
dpd_buf4_close(&taut);
390
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
391
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
392
dpd_contract222(&tIA, &FME, &FAE, 1, 1, -0.5, 1);
393
dpd_file2_close(&tIA);
394
dpd_file2_close(&FME);
396
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
397
dpd_file2_init(&Fme, CC_OEI, 0, 2, 3, "Fme");
398
dpd_contract222(&tia, &Fme, &Fae, 1, 1, -0.5, 1);
399
dpd_file2_close(&tia);
400
dpd_file2_close(&Fme);
402
/* Fae and FAE tilde intermediates */
403
dpd_file2_copy(&FAE, CC_OEI, "FAEt");
404
dpd_file2_copy(&Fae, CC_OEI, "Faet");
406
dpd_file2_close(&FAE);
407
dpd_file2_close(&Fae);
410
dpd_file2_init(&fIJ, CC_OEI, 0, 0, 0, "fIJ");
411
dpd_file2_copy(&fIJ, CC_OEI, "FMI");
412
dpd_file2_close(&fIJ);
414
dpd_file2_init(&fij, CC_OEI, 0, 2, 2, "fij");
415
dpd_file2_copy(&fij, CC_OEI, "Fmi");
416
dpd_file2_close(&fij);
418
dpd_file2_init(&FMI, CC_OEI, 0, 0, 0, "FMI");
419
dpd_file2_init(&Fmi, CC_OEI, 0, 2, 2, "Fmi");
421
dpd_file2_init(&fIA, CC_OEI, 0, 0, 1, "fIA");
422
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
423
dpd_contract222(&fIA, &tIA, &FMI, 0, 0, 0.5, 1);
424
dpd_file2_close(&tIA);
425
dpd_file2_close(&fIA);
427
dpd_file2_init(&fia, CC_OEI, 0, 2, 3, "fia");
428
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
429
dpd_contract222(&fia, &tia, &Fmi, 0, 0, 0.5, 1);
430
dpd_file2_close(&tia);
431
dpd_file2_close(&fia);
433
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
434
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
436
dpd_buf4_init(&E_anti, CC_EINTS, 0, 21, 0, 21, 0, 1, "E <AI|JK>");
437
dpd_buf4_init(&E, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
439
dpd_dot13(&tIA, &E_anti, &FMI, 1, 1, 1, 1);
440
dpd_dot24(&tia, &E, &FMI, 0, 0, 1, 1);
443
dpd_buf4_close(&E_anti);
445
dpd_buf4_init(&E_anti, CC_EINTS, 0, 31, 10, 31, 10, 1, "E <ai|jk>");
446
dpd_buf4_init(&E, CC_EINTS, 0, 26, 22, 26, 22, 0, "E <Ai|Jk>");
448
dpd_dot13(&tia, &E_anti, &Fmi, 1, 1, 1, 1);
449
dpd_dot13(&tIA, &E, &Fmi, 1, 1, 1, 1);
452
dpd_buf4_close(&E_anti);
454
dpd_file2_close(&tIA);
455
dpd_file2_close(&tia);
457
dpd_buf4_init(&D, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <IJ||AB> (IJ,A>B)");
458
dpd_buf4_init(&tautIJAB, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tautIJAB");
459
dpd_contract442(&D, &tautIJAB, &FMI, 0, 0, 1, 1);
460
dpd_buf4_close(&tautIJAB);
463
dpd_buf4_init(&D, CC_DINTS, 0, 10, 17, 10, 17, 0, "D <ij||ab> (ij,a>b)");
464
dpd_buf4_init(&tautijab, CC_TAMPS, 0, 10, 17, 12, 17, 0, "tautijab");
465
dpd_contract442(&D, &tautijab, &Fmi, 0, 0, 1, 1);
466
dpd_buf4_close(&tautijab);
469
dpd_buf4_init(&D, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
470
dpd_buf4_init(&tautIjAb, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tautIjAb");
471
dpd_contract442(&D, &tautIjAb, &FMI, 0, 0, 1, 1);
472
dpd_buf4_close(&tautIjAb);
475
dpd_buf4_init(&D, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
476
dpd_buf4_init(&tautIjAb, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tautiJaB");
477
dpd_contract442(&D, &tautIjAb, &Fmi, 0, 0, 1, 1);
478
dpd_buf4_close(&tautIjAb);
481
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
482
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
483
dpd_contract222(&FME, &tIA, &FMI, 0, 0, 0.5, 1);
484
dpd_file2_close(&FME);
485
dpd_file2_close(&tIA);
487
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
488
dpd_file2_init(&Fme, CC_OEI, 0, 2, 3, "Fme");
489
dpd_contract222(&Fme, &tia, &Fmi, 0, 0, 0.5, 1);
490
dpd_file2_close(&Fme);
491
dpd_file2_close(&tia);
493
/* FMI and Fmi tilde intermediate */
494
dpd_file2_copy(&FMI, CC_OEI, "FMIt");
495
dpd_file2_copy(&Fmi, CC_OEI, "Fmit");
497
dpd_file2_close(&FMI);
498
dpd_file2_close(&Fmi);
501
/* remove diagonal elements from Ft's */
502
dpd_file2_init(&Faet, CC_OEI, 0, 3, 3, "Faet");
503
dpd_file2_mat_init(&Faet);
504
dpd_file2_mat_rd(&Faet);
506
for(h=0; h < moinfo.nirreps; h++)
507
for(a=0; a < Faet.params->rowtot[h]; a++)
508
Faet.matrix[h][a][a] = 0.0;
510
dpd_file2_mat_wrt(&Faet);
511
dpd_file2_mat_close(&Faet);
512
dpd_file2_close(&Faet);
514
dpd_file2_init(&FAEt, CC_OEI, 0, 1, 1, "FAEt");
515
dpd_file2_mat_init(&FAEt);
516
dpd_file2_mat_rd(&FAEt);
518
for(h=0; h < moinfo.nirreps; h++)
519
for(a=0; a < FAEt.params->rowtot[h]; a++)
520
FAEt.matrix[h][a][a] = 0.0;
522
dpd_file2_mat_wrt(&FAEt);
523
dpd_file2_mat_close(&FAEt);
524
dpd_file2_close(&FAEt);
526
dpd_file2_init(&Fmit, CC_OEI, 0, 2, 2, "Fmit");
527
dpd_file2_mat_init(&Fmit);
528
dpd_file2_mat_rd(&Fmit);
530
for(h=0; h < moinfo.nirreps; h++)
531
for(a=0; a < Fmit.params->rowtot[h]; a++)
532
Fmit.matrix[h][a][a] = 0.0;
534
dpd_file2_mat_wrt(&Fmit);
535
dpd_file2_mat_close(&Fmit);
536
dpd_file2_close(&Fmit);
538
dpd_file2_init(&FMIt, CC_OEI, 0, 0, 0, "FMIt");
539
dpd_file2_mat_init(&FMIt);
540
dpd_file2_mat_rd(&FMIt);
542
for(h=0; h < moinfo.nirreps; h++)
543
for(a=0; a < FMIt.params->rowtot[h]; a++)
544
FMIt.matrix[h][a][a] = 0.0;
546
dpd_file2_mat_wrt(&FMIt);
547
dpd_file2_mat_close(&FMIt);
548
dpd_file2_close(&FMIt);