2
#include <libdpd/dpd.h>
7
void x_xi2_4_rohf(void);
10
extern void x_xi_check(char *term_lbl);
11
extern void x_xi2_uhf(void);
12
extern void x_xi2_rhf(void);
14
/* compute xi_2 amplitudes for zeta equations */
19
else if (params.ref == 1)
28
dpdfile2 L1, XIA, Xia, I1, R1, F1, Z1A, Z1B;
29
int L_irr, R_irr, G_irr;
31
dpdbuf4 D2, R2, L2, H2, I2, Z, Z2, XIJAB, Xijab, XIjAb;
41
/* terms 1 and 5, Xijab += (Lme Rme + 0.25 Lmnef Rmnef) <ij||eb> */
42
/* overlaps in params are assigned in x_xi1.c */
43
/* see comments in xi1_connected.c */
44
dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
45
dpd_buf4_scmcopy(&D2, EOM_XI, "XIJAB", params.overlap1+params.overlap2);
46
dpd_buf4_scmcopy(&D2, EOM_XI, "Xijab", params.overlap1+params.overlap2);
48
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
49
dpd_buf4_scmcopy(&D2, EOM_XI, "XIjAb", params.overlap1+params.overlap2);
52
x_xi_check("terms 1 and 5");
55
/* terms 2 and 9, Xijab -= P(ab) (Lma Rme + Lmnfa Rmnfe) <ij||eb */
56
dpd_buf4_init(&Z2, EOM_TMP1, 0, 2, 5, 2, 5, 0, "Z (I>J,AB)");
57
dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_VV");
58
dpd_buf4_init(&D2, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
59
dpd_contract244(&I1, &D2, &Z2, 1, 2, 1, 1.0, 0.0);
62
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "XIJAB");
63
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
64
dpd_buf4_close(&XIJAB);
65
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
68
dpd_buf4_init(&Z2, EOM_TMP1, 0, 2, 5, 2, 5, 0, "Z (i>j,ab)");
69
dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_vv");
70
dpd_buf4_init(&D2, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
71
dpd_contract244(&I1, &D2, &Z2, 1, 2, 1, 1.0, 0.0);
74
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 5, 2, 7, 0, "Xijab");
75
dpd_buf4_axpy(&Z2, &Xijab, -1.0);
76
dpd_buf4_close(&Xijab);
77
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
80
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
81
dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_VV");
82
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
83
dpd_contract244(&I1, &D2, &XIjAb, 1, 2, 1, -1.0, 1.0);
85
dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_vv");
86
dpd_contract424(&D2, &I1, &XIjAb, 3, 1, 0, -1.0, 1.0);
89
dpd_buf4_close(&XIjAb);
91
x_xi_check("terms 2 and 9");
94
/* terms 3 and 10, Xijab -= P(ij) (Lie Rme + 0.5 Linef Rmnef) <mj||ab> */
95
dpd_buf4_init(&Z2, EOM_TMP1, 0, 0, 7, 0, 7, 0, "Z (IJ,A>B)");
96
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_OO");
97
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <ij||ab> (ij,a>b)");
98
dpd_contract244(&I1, &D2, &Z2, 1, 0, 0, 1.0, 0.0);
100
dpd_file2_close(&I1);
101
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "XIJAB");
102
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
103
dpd_buf4_close(&XIJAB);
104
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", 1.0);
107
dpd_buf4_init(&Z2, EOM_TMP1, 0, 0, 7, 0, 7, 0, "Z (ij,a>b)");
108
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_oo");
109
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <ij||ab> (ij,a>b)");
110
dpd_contract244(&I1, &D2, &Z2, 1, 0, 0, 1.0, 0.0);
112
dpd_file2_close(&I1);
113
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 7, 2, 7, 0, "Xijab");
114
dpd_buf4_axpy(&Z2, &Xijab, -1.0);
115
dpd_buf4_close(&Xijab);
116
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", 1.0);
119
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
120
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_OO");
121
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
122
dpd_contract244(&I1, &D2, &XIjAb, 1, 0, 0, -1.0, 1.0);
123
dpd_file2_close(&I1);
124
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_oo");
125
dpd_contract424(&D2, &I1, &XIjAb, 1, 1, 1, -1.0, 1.0);
126
dpd_file2_close(&I1);
128
dpd_buf4_close(&XIjAb);
130
psio_close(EOM_TMP1,0);
131
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
133
x_xi_check("terms 3 and 10");
138
psio_close(EOM_TMP1,0);
139
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
141
x_xi_check("terms 4 and 6");
144
/* term 7, Xijab += 0.25 Lmnab Rmnef <ij||ef> */
145
dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
146
dpd_buf4_init(&R2, CC_GR, R_irr, 2, 7, 2, 7, 0, "RIJAB");
147
dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 2, 2, 2, 2, 0, "Z (I>J,M>N)");
148
dpd_contract444(&D2, &R2, &Z2, 0, 0, 1.0, 0.0);
151
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
152
dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "LIJAB");
153
dpd_contract444(&Z2, &L2, &XIJAB, 0, 1, 1.0, 1.0);
156
dpd_buf4_close(&XIJAB);
158
dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
159
dpd_buf4_init(&R2, CC_GR, R_irr, 2, 7, 2, 7, 0, "Rijab");
160
dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 2, 2, 2, 2, 0, "Z (i>j,m>n)");
161
dpd_contract444(&D2, &R2, &Z2, 0, 0, 1.0, 0.0);
164
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
165
dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "Lijab");
166
dpd_contract444(&Z2, &L2, &Xijab, 0, 1, 1.0, 1.0);
169
dpd_buf4_close(&Xijab);
171
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
172
dpd_buf4_init(&R2, CC_GR, R_irr, 0, 5, 0, 5, 0, "RIjAb");
173
dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 0, 0, 0, 0, 0, "Z (Ij,Mn)");
174
dpd_contract444(&D2, &R2, &Z2, 0, 0, 1.0, 0.0);
177
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
178
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
179
dpd_contract444(&Z2, &L2, &XIjAb, 0, 1, 1.0, 1.0);
182
dpd_buf4_close(&XIjAb);
184
psio_close(EOM_TMP1,0);
185
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
187
x_xi_check("term 7");
190
/* term 8, Xijab += 0.25 Rmnef Lijef <mn||ab> */
191
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
192
dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 2, 2, 2, 0, "R2L2_OOOO");
193
dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
194
dpd_contract444(&I2, &D2, &XIJAB, 1, 1, 1.0, 1.0);
197
dpd_buf4_close(&XIJAB);
198
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
199
dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 2, 2, 2, 0, "R2L2_oooo");
200
dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
201
dpd_contract444(&I2, &D2, &Xijab, 1, 1, 1.0, 1.0);
204
dpd_buf4_close(&Xijab);
205
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
206
dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 0, 0, 0, 0, "R2L2_OoOo");
207
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
208
dpd_contract444(&I2, &D2, &XIjAb, 1, 1, 1.0, 1.0);
211
dpd_buf4_close(&XIjAb);
214
x_xi_check("term 8");
217
/* term 11, Xijab -= 0.5 P(ab) Lijfb (Rmnef <mn||ea>) */
218
/* term 17 -= P(ab) Lijfb (Rmf Fma) */
219
/* term 20 += P(ab) Lijfb (Rme Wfmae) */
220
/* build 1-e intermediates to include term 17 */
222
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 1, 1, "RD_VV");
223
dpd_file2_copy(&I1, EOM_TMP1, "Z (F,A)");
224
dpd_file2_close(&I1);
225
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (F,A)");
227
dpd_file2_init(&Z1A, EOM_TMP_XI, R_irr, 1, 1, "R1Wamef_VV");
228
dpd_file2_axpy(&Z1A, &I1, -1.0, 0);
229
dpd_file2_close(&Z1A);
231
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
232
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
233
dpd_contract222(&R1, &F1, &I1, 1, 1, 1.0, 1.0);
234
dpd_file2_close(&F1);
235
dpd_file2_close(&R1);
236
dpd_file2_close(&I1);
239
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 1, 1, "RD_vv");
240
dpd_file2_copy(&I1, EOM_TMP1, "Z (f,a)");
241
dpd_file2_close(&I1);
242
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (f,a)");
244
dpd_file2_init(&Z1B, EOM_TMP_XI, R_irr, 1, 1, "R1Wamef_vv");
245
dpd_file2_axpy(&Z1B, &I1, -1.0, 0);
246
dpd_file2_close(&Z1B);
248
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
249
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "Fme");
250
dpd_contract222(&R1, &F1, &I1, 1, 1, 1.0, 1.0);
251
dpd_file2_close(&F1);
252
dpd_file2_close(&R1);
253
dpd_file2_close(&I1);
255
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (I>J,AB)");
256
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (F,A)");
257
dpd_buf4_init(&L2, CC_GL, L_irr, 2, 5, 2, 7, 0, "LIJAB");
258
dpd_contract244(&I1, &L2, &Z2, 0, 2, 1, 1.0, 0.0);
260
dpd_file2_close(&I1);
261
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "XIJAB");
262
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
263
dpd_buf4_close(&XIJAB);
264
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
267
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (i>j,ab)");
268
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (f,a)");
269
dpd_buf4_init(&L2, CC_GL, L_irr, 2, 5, 2, 7, 0, "Lijab");
270
dpd_contract244(&I1, &L2, &Z2, 0, 2, 1, 1.0, 0.0);
272
dpd_file2_close(&I1);
273
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 5, 2, 7, 0, "Xijab");
274
dpd_buf4_axpy(&Z2, &Xijab, -1.0);
275
dpd_buf4_close(&Xijab);
276
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
279
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
280
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (F,A)");
281
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
282
dpd_contract244(&I1, &L2, &XIjAb, 0, 2, 1, -1.0, 1.0);
283
dpd_file2_close(&I1);
284
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (f,a)");
285
dpd_contract424(&L2, &I1, &XIjAb, 3, 0, 0, -1.0, 1.0);
287
dpd_file2_close(&I1);
288
dpd_buf4_close(&XIjAb);
290
x_xi_check("terms 11, 17 and 20");
293
/* term 12, Xijab -= 0.5 P(ij) Lmjab (Rmnef <in||ef>) */
294
/* term 16, -= P(ij) Lmjab (Rme Fie) */
295
/* term 21, -= P(ij) Lmjab (Rne Winme) */
296
/* make 1-electron intermediates to include terms 16 and 21 as well */
298
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_OO");
299
dpd_file2_copy(&I1, EOM_TMP1, "Z (M,I)");
300
dpd_file2_close(&I1);
301
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (M,I)");
303
dpd_file2_init(&Z1A, EOM_TMP_XI, R_irr, 0, 0, "R1Wmnie_OO");
304
dpd_file2_axpy(&Z1A, &I1, 1.0, 1);
305
dpd_file2_close(&Z1A);
307
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
308
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
309
dpd_contract222(&R1, &F1, &I1, 0, 0, 1.0, 1.0);
310
dpd_file2_close(&F1);
311
dpd_file2_close(&R1);
312
dpd_file2_close(&I1);
315
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_oo");
316
dpd_file2_copy(&I1, EOM_TMP1, "Z (m,i)");
317
dpd_file2_close(&I1);
318
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (m,i)");
320
dpd_file2_init(&Z1B, EOM_TMP_XI, R_irr, 0, 0, "R1Wmnie_oo");
321
dpd_file2_axpy(&Z1B, &I1, 1.0, 1);
322
dpd_file2_close(&Z1B);
324
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
325
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "Fme");
326
dpd_contract222(&R1, &F1, &I1, 0, 0, 1.0, 1.0);
327
dpd_file2_close(&F1);
328
dpd_file2_close(&R1);
329
dpd_file2_close(&I1);
331
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (IJ,A>B)");
332
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (M,I)");
333
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 7, 2, 7, 0, "LIJAB");
334
dpd_contract244(&I1, &L2, &Z2, 0, 0, 0, 1.0, 0.0);
336
dpd_file2_close(&I1);
337
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "XIJAB");
338
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
339
dpd_buf4_close(&XIJAB);
340
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", 1.0);
343
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (ij,a>b)");
344
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (m,i)");
345
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 7, 2, 7, 0, "Lijab");
346
dpd_contract244(&I1, &L2, &Z2, 0, 0, 0, 1.0, 0.0);
348
dpd_file2_close(&I1);
349
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "Xijab");
350
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
351
dpd_buf4_close(&XIJAB);
352
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", 1.0);
355
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
356
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (M,I)");
357
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
358
dpd_contract244(&I1, &L2, &XIjAb, 0, 0, 0, -1.0, 1.0);
359
dpd_file2_close(&I1);
360
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (m,i)");
361
dpd_contract424(&L2, &I1, &XIjAb, 1, 0, 1, -1.0, 1.0);
363
dpd_file2_close(&I1);
364
dpd_buf4_close(&XIjAb);
366
x_xi_check("term 12, 16 and 21");
369
psio_close(EOM_TMP1,0);
370
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
372
/* term 13 + 15, (0.25 Rmnef <mn||ef> + Rme Fme) Lijab */
373
if ( (L_irr == 0) && (!params.connect_xi)) {
374
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
375
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
376
tval = dpd_file2_dot(&R1, &F1);
377
dpd_file2_close(&F1);
378
dpd_file2_close(&R1);
379
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
380
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "Fme");
381
tval += dpd_file2_dot(&R1, &F1);
382
dpd_file2_close(&F1);
383
dpd_file2_close(&R1);
384
tval += params.RD_overlap;
386
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
387
dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "LIJAB");
388
dpd_buf4_axpy(&L2, &XIJAB, tval);
390
dpd_buf4_close(&XIJAB);
391
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
392
dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "Lijab");
393
dpd_buf4_axpy(&L2, &Xijab, tval);
395
dpd_buf4_close(&Xijab);
396
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
397
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
398
dpd_buf4_axpy(&L2, &XIjAb, tval);
400
dpd_buf4_close(&XIjAb);
402
x_xi_check("term 13 (ijab) and 15 (Fme)");
406
/* term 14, +P(ij) P(ab) Lmjeb Rme Fia */
407
if (!params.connect_xi) {
410
x_xi_check("term 14 (Fme)");
413
psio_close(EOM_TMP1,0);
414
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
416
/* term 22, +P(ij) (Limfe Rme) Wfjab */
417
if (!params.connect_xi) {
418
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (IJ,A>B)");
419
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
420
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "WAMEF");
421
dpd_contract244(&I1, &H2, &Z2, 1, 0, 0, 1.0, 0.0);
423
dpd_file2_close(&I1);
424
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "XIJAB");
425
dpd_buf4_axpy(&Z2, &XIJAB, 1.0);
426
dpd_buf4_close(&XIJAB);
427
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", -1.0);
430
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (ij,a>b)");
431
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
432
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "Wamef");
433
dpd_contract244(&I1, &H2, &Z2, 1, 0, 0, 1.0, 0.0);
435
dpd_file2_close(&I1);
436
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 7, 2, 7, 0, "Xijab");
437
dpd_buf4_axpy(&Z2, &Xijab, 1.0);
438
dpd_buf4_close(&Xijab);
439
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", -1.0);
442
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
443
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
444
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
445
dpd_contract244(&I1, &H2, &XIjAb, 1, 0, 0, 1.0, 1.0);
447
dpd_file2_close(&I1);
448
dpd_buf4_close(&XIjAb);
450
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (jI,bA)");
451
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
452
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
453
dpd_contract244(&I1, &H2, &Z2, 1, 0, 0, 1.0, 0.0);
455
dpd_file2_close(&I1);
456
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", 1.0);
459
x_xi_check("term 22 (Wamef)");
461
psio_close(EOM_TMP1,0);
462
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
465
/* term 23, -P(ab) (Lmnea Rme) Wijnb */
466
if (!params.connect_xi) {
467
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (I>J,AB)");
468
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
469
dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "WMNIE");
470
dpd_contract244(&I1, &H2, &Z2, 0, 2, 1, 1.0, 0.0);
472
dpd_file2_close(&I1);
473
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "XIJAB");
474
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
475
dpd_buf4_close(&XIJAB);
476
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
479
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (i>j,ab)");
480
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
481
dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "Wmnie");
482
dpd_contract244(&I1, &H2, &Z2, 0, 2, 1, 1.0, 0.0);
484
dpd_file2_close(&I1);
485
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "Xijab");
486
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
487
dpd_buf4_close(&XIJAB);
488
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
491
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
492
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
493
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
494
dpd_contract244(&I1, &H2, &XIjAb, 0, 2, 1, -1.0, 1.0);
496
dpd_file2_close(&I1);
497
dpd_buf4_close(&XIjAb);
499
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (jI,Ab)");
500
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
501
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE (mN,Ei)");
502
dpd_contract424(&H2, &I1, &Z2, 3, 0, 0, 1.0, 0.0);
504
dpd_file2_close(&I1);
505
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 0, 5, "XIjAb", -1.0);
508
x_xi_check("term 23 (Wmnie)");
512
/* term 25, Xijab += (Lnmab Rme) Wijne */
513
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
514
dpd_buf4_init(&I2, EOM_TMP, G_irr, 7, 10, 7, 10, 0, "L2R1_VVOV");
515
dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "WMNIE");
516
dpd_contract444(&H2, &I2, &XIJAB, 0, 0, 1.0, 1.0);
519
dpd_buf4_close(&XIJAB);
521
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
522
dpd_buf4_init(&I2, EOM_TMP, G_irr, 7, 10, 7, 10, 0, "L2R1_vvov");
523
dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "Wmnie");
524
dpd_contract444(&H2, &I2, &Xijab, 0, 0, 1.0, 1.0);
527
dpd_buf4_close(&Xijab);
529
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
530
dpd_buf4_init(&I2, EOM_TMP, G_irr, 5, 10, 5, 10, 0, "L2R1_VvOv");
531
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
532
dpd_contract444(&H2, &I2, &XIjAb, 0, 0, 1.0, 1.0);
535
dpd_buf4_close(&XIjAb);
537
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (jI,Ab)");
538
dpd_buf4_init(&I2, EOM_TMP, G_irr, 5, 10, 5, 10, 0, "L2R1_VvoV");
539
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WmNiE");
540
dpd_contract444(&H2, &I2, &Z2, 0, 0, 1.0, 0.0);
543
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 0, 5, "XIjAb", 1.0);
547
x_xi_check("term 25 (Wmnie)");
549
psio_close(EOM_TMP1,0);
550
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
552
/* term 24, Xijab -= (Lijfe Rme) Wfmab */
553
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
554
dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 11, 2, 11, 0, "L2R1_OOVO");
555
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "WAMEF");
556
dpd_contract444(&I2, &H2, &XIJAB, 0, 1, -1.0, 1.0);
559
dpd_buf4_close(&XIJAB);
561
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
562
dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 11, 2, 11, 0, "L2R1_oovo");
563
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "Wamef");
564
dpd_contract444(&I2, &H2, &Xijab, 0, 1, -1.0, 1.0);
567
dpd_buf4_close(&Xijab);
569
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
570
dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 11, 0, 11, 0, "L2R1_OoVo");
571
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
572
dpd_contract444(&I2, &H2, &XIjAb, 0, 1, -1.0, 1.0);
575
dpd_buf4_close(&XIjAb);
577
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (Ij,bA)");
578
dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 11, 0, 11, 0, "L2R1_OovO");
579
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
580
dpd_contract444(&I2, &H2, &Z2, 0, 1, 1.0, 0.0);
583
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 0, 5, "XIjAb", -1.0);
586
x_xi_check("term 24 (Wamef)");
588
psio_close(EOM_TMP1,0);
589
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
591
/* terms 18, 19: Xijab -= P(ij) P(ab) Linae (Rme Wmjnb + Rnf Wejbf) */
592
/* construct Z(JB,NE) = RME WMJNB + RNF WEJBF */
593
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z (EJ,BN)");
594
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 2, 11, 0, "WMNIE (M>N,EI)");
595
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
596
dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
598
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 7, 0, "WAMEF");
599
dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 1.0);
601
dpd_file2_close(&R1);
602
dpd_buf4_sort(&Z, EOM_TMP1, qpsr, 10, 10, "Z (JE,NB)");
604
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JE,NB)");
605
dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (JB,NE)");
608
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 10, 11, 10, 0, "Z (eJ,nB)");
609
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WmNiE");
610
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
611
dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
613
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
614
dpd_contract244(&R1, &H2, &Z, 1, 2, 1, -1.0, 1.0);
616
dpd_file2_close(&R1);
617
dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 10, "Z (Je,nB)");
619
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Je,nB)");
620
dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (JB,ne)");
623
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z (ej,bn)");
624
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 2, 11, 0, "Wmnie (m>n,ei)");
625
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
626
dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
628
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 7, 0, "Wamef");
629
dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 1.0);
631
dpd_file2_close(&R1);
632
dpd_buf4_sort(&Z, EOM_TMP1, qpsr, 10, 10, "Z (je,nb)");
634
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (je,nb)");
635
dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (jb,ne)");
638
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 10, 11, 10, 0, "Z (Ej,Nb)");
639
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
640
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
641
dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
643
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
644
dpd_contract244(&R1, &H2, &Z, 1, 2, 1, -1.0, 1.0);
646
dpd_file2_close(&R1);
647
dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 10, "Z (jE,Nb)");
649
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jE,Nb)");
650
dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (jb,NE)");
653
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 11, 10, 11, 0, "Z (Je,bN)");
654
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe (Mn,eI)");
655
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
656
dpd_contract424(&H2, &R1, &Z, 1, 0, 1, -1.0, 0.0);
657
dpd_file2_close(&R1);
659
dpd_buf4_sort(&Z, EOM_TMP1, prsq, 10, 10, "Z (Jb,Ne)");
662
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z2 (eJ,bN)");
663
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
664
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
665
dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 0.0);
666
dpd_file2_close(&R1);
668
dpd_buf4_sort_axpy(&Z, EOM_TMP1, qrsp, 10, 10, "Z (Jb,Ne)", 1.0);
671
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 11, 10, 11, 0, "Z (jE,Bn)");
672
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE (mN,Ei)");
673
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
674
dpd_contract424(&H2, &R1, &Z, 1, 0, 1, -1.0, 0.0);
675
dpd_file2_close(&R1);
677
dpd_buf4_sort(&Z, EOM_TMP1, prsq, 10, 10, "Z (jB,nE)");
680
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z2 (Ej,Bn)");
681
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
682
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
683
dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 0.0);
684
dpd_file2_close(&R1);
686
dpd_buf4_sort_axpy(&Z, EOM_TMP1, qrsp, 10, 10, "Z (jB,nE)", 1.0);
689
/* XIJAB -= P(IJ) P(AB) L(IA,NE) Z(NE,JB) */
690
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,JB)");
691
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAJB");
692
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,NE)");
693
dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 0.0);
696
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAjb");
697
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,ne)");
698
dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 1.0);
701
dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (IJ,AB)");
704
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (IJ,AB)");
705
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "XIJAB");
706
dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
707
dpd_buf4_close(&XIJAB);
708
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", 1.0);
709
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
710
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "XIJAB", -1.0);
713
x_xi_check("terms 18, 19 (Wmnie, Wamef)");
716
/* Xijab -= P(ij) P(ab) L(ia,ne) Z(ne,jb) */
717
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (ia,jb)");
718
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "Liajb");
719
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,ne)");
720
dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 0.0);
723
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LiaJB");
724
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,NE)");
725
dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 1.0);
728
dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (ij,ab)");
731
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (ij,ab)");
732
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 5, 2, 7, 0, "Xijab");
733
dpd_buf4_axpy(&Z2, &Xijab, -1.0);
734
dpd_buf4_close(&Xijab);
735
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", 1.0);
736
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
737
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "Xijab", -1.0);
740
/* XIjAb += - L(IA,NE) Z(jb,NE) - L(IA,ne) Z(jb,ne) */
741
/* - L(jb,ne) Z(IA,ne) - L(jb,NE) Z(IA,NE) */
742
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,jb)");
743
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAJB");
744
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,NE)");
745
dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 0.0);
748
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAjb");
749
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,ne)");
750
dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 1.0);
753
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,ne)");
754
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "Liajb");
755
dpd_contract444(&Z, &L2, &Z2, 0, 0, 1.0, 1.0);
758
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,NE)");
759
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LiaJB");
760
dpd_contract444(&Z, &L2, &Z2, 0, 0, 1.0, 1.0);
763
dpd_buf4_sort_axpy(&Z2, EOM_XI, prqs, 0, 5, "XIjAb", -1.0);
766
/* XIjAb += + L(jA,Ne) Z(Ib,Ne) + L(Ib,nE) Z(jA,nE) */
767
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (Ib,jA)");
768
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LjAIb");
769
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Jb,Ne)");
770
dpd_contract444(&Z, &L2, &Z2, 0, 0, -1.0, 0.0);
774
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIbjA");
775
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jB,nE)");
776
dpd_contract444(&L2, &Z, &Z2, 0, 0, -1.0, 1.0);
779
dpd_buf4_sort_axpy(&Z2, EOM_XI, prsq, 0, 5, "XIjAb", 1.0);
782
x_xi_check("terms 18, 19 (Wmnie, Wamef)");
784
psio_close(EOM_TMP1,0);
785
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
787
/* Write irrep of XI amplitudes to CC_INFO */
788
psio_write_entry(CC_INFO, "XI Irrep", (char *) &G_irr,sizeof(int));
790
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
791
tval = dpd_file2_dot_self(&XIA);
792
dpd_file2_close(&XIA);
793
fprintf(outfile,"XIA amplitudes: norm=%20.15lf dot=%20.15lf\n", sqrt(tval), tval );
794
dpd_file2_init(&Xia, EOM_XI, G_irr, 0, 1, "Xia");
795
tval += dpd_file2_dot_self(&Xia);
796
fprintf(outfile,"X1 amplitudes: norm=%20.15lf dot=%20.15lf\n", sqrt(tval), tval );
797
dpd_file2_close(&Xia);
798
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
799
tval += dpd_buf4_dot_self(&XIJAB);
800
dpd_buf4_close(&XIJAB);
801
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
802
tval += dpd_buf4_dot_self(&Xijab);
803
dpd_buf4_close(&Xijab);
804
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
805
tval += dpd_buf4_dot_self(&XIjAb);
806
dpd_buf4_close(&XIjAb);
807
fprintf(outfile,"Norm of Xi: %20.15lf\n", sqrt(tval) );
813
/* compute terms 4 and 6 of xi2 amplitudes */
814
/* Xijab += P(ij) P(ab) (Rme Lia + Rmnef Linaf) <mj||eb> */
815
void x_xi2_4_rohf(void)
817
dpdfile2 RIA, Ria, LIA, Lia;
818
int L_irr, R_irr, G_irr, nirreps;
819
int I, A, M, E, i, a, m, e, h, row, col, Isym, Esym, Asym, Msym;
820
dpdbuf4 D, R2, L2, H2, I2, Z, Z2, XIJAB, Xijab, XIjAb;
822
L_irr = params.L_irr;
823
R_irr = params.R_irr;
824
G_irr = params.G_irr;
825
nirreps = moinfo.nirreps;
827
/* construct RL = Rme Lia + Rmnef Linaf */
828
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVOV");
829
dpd_buf4_copy(&I2, EOM_TMP1, "RL_OVOV");
831
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_ovov");
832
dpd_buf4_copy(&I2, EOM_TMP1, "RL_ovov");
834
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVov");
835
dpd_buf4_copy(&I2, EOM_TMP1, "RL_OVov");
837
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_ovOV");
838
dpd_buf4_copy(&I2, EOM_TMP1, "RL_ovOV");
840
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_oVoV");
841
dpd_buf4_copy(&I2, EOM_TMP1, "RL_oVoV");
843
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OvOv");
844
dpd_buf4_copy(&I2, EOM_TMP1, "RL_OvOv");
847
/* RL_OVOV(me,ia) += Rme Lia */
848
dpd_file2_init(&RIA, CC_GR, R_irr, 0, 1, "RIA");
849
dpd_file2_init(&LIA, CC_GL, L_irr, 0, 1, "LIA");
850
dpd_file2_init(&Ria, CC_GR, R_irr, 0, 1, "Ria");
851
dpd_file2_init(&Lia, CC_GL, L_irr, 0, 1, "Lia");
853
dpd_file2_mat_init(&RIA);
854
dpd_file2_mat_init(&Ria);
855
dpd_file2_mat_init(&LIA);
856
dpd_file2_mat_init(&Lia);
857
dpd_file2_mat_rd(&RIA);
858
dpd_file2_mat_rd(&Ria);
859
dpd_file2_mat_rd(&LIA);
860
dpd_file2_mat_rd(&Lia);
862
dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVOV");
863
for(h=0; h < nirreps; h++) {
864
dpd_buf4_mat_irrep_init(&I2, h);
865
dpd_buf4_mat_irrep_rd(&I2, h);
866
for(row=0; row < I2.params->rowtot[h]; row++) {
867
m = I2.params->roworb[h][row][0];
868
e = I2.params->roworb[h][row][1];
869
M = RIA.params->rowidx[m]; Msym = RIA.params->psym[m];
870
E = RIA.params->colidx[e]; Esym = RIA.params->qsym[e];
871
for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
872
i = I2.params->colorb[h^G_irr][col][0];
873
a = I2.params->colorb[h^G_irr][col][1];
874
I = LIA.params->rowidx[i]; Isym = LIA.params->psym[i];
875
A = LIA.params->colidx[a]; Asym = LIA.params->qsym[a];
876
if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
877
I2.matrix[h][row][col] += RIA.matrix[Msym][M][E] * LIA.matrix[Isym][I][A];
880
dpd_buf4_mat_irrep_wrt(&I2, h);
881
dpd_buf4_mat_irrep_close(&I2, h);
885
dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovov");
886
for(h=0; h < nirreps; h++) {
887
dpd_buf4_mat_irrep_init(&I2, h);
888
dpd_buf4_mat_irrep_rd(&I2, h);
889
for(row=0; row < I2.params->rowtot[h]; row++) {
890
m = I2.params->roworb[h][row][0];
891
e = I2.params->roworb[h][row][1];
892
M = Ria.params->rowidx[m]; Msym = Ria.params->psym[m];
893
E = Ria.params->colidx[e]; Esym = Ria.params->qsym[e];
894
for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
895
i = I2.params->colorb[h^G_irr][col][0];
896
a = I2.params->colorb[h^G_irr][col][1];
897
I = Lia.params->rowidx[i]; Isym = Lia.params->psym[i];
898
A = Lia.params->colidx[a]; Asym = Lia.params->qsym[a];
899
if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
900
I2.matrix[h][row][col] += Ria.matrix[Msym][M][E] * Lia.matrix[Isym][I][A];
903
dpd_buf4_mat_irrep_wrt(&I2, h);
904
dpd_buf4_mat_irrep_close(&I2, h);
908
dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
909
for(h=0; h < nirreps; h++) {
910
dpd_buf4_mat_irrep_init(&I2, h);
911
dpd_buf4_mat_irrep_rd(&I2, h);
912
for(row=0; row < I2.params->rowtot[h]; row++) {
913
m = I2.params->roworb[h][row][0];
914
e = I2.params->roworb[h][row][1];
915
M = RIA.params->rowidx[m]; Msym = RIA.params->psym[m];
916
E = RIA.params->colidx[e]; Esym = RIA.params->qsym[e];
917
for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
918
i = I2.params->colorb[h^G_irr][col][0];
919
a = I2.params->colorb[h^G_irr][col][1];
920
I = Lia.params->rowidx[i]; Isym = Lia.params->psym[i];
921
A = Lia.params->colidx[a]; Asym = Lia.params->qsym[a];
922
if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
923
I2.matrix[h][row][col] += RIA.matrix[Msym][M][E] * Lia.matrix[Isym][I][A];
926
dpd_buf4_mat_irrep_wrt(&I2, h);
927
dpd_buf4_mat_irrep_close(&I2, h);
931
dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovOV");
932
for(h=0; h < nirreps; h++) {
933
dpd_buf4_mat_irrep_init(&I2, h);
934
dpd_buf4_mat_irrep_rd(&I2, h);
935
for(row=0; row < I2.params->rowtot[h]; row++) {
936
m = I2.params->roworb[h][row][0];
937
e = I2.params->roworb[h][row][1];
938
M = Ria.params->rowidx[m]; Msym = Ria.params->psym[m];
939
E = Ria.params->colidx[e]; Esym = Ria.params->qsym[e];
940
for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
941
i = I2.params->colorb[h^G_irr][col][0];
942
a = I2.params->colorb[h^G_irr][col][1];
943
I = LIA.params->rowidx[i]; Isym = LIA.params->psym[i];
944
A = LIA.params->colidx[a]; Asym = LIA.params->qsym[a];
945
if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
946
I2.matrix[h][row][col] += Ria.matrix[Msym][M][E] * LIA.matrix[Isym][I][A];
949
dpd_buf4_mat_irrep_wrt(&I2, h);
950
dpd_buf4_mat_irrep_close(&I2, h);
954
dpd_file2_mat_close(&RIA);
955
dpd_file2_mat_close(&Ria);
956
dpd_file2_mat_close(&LIA);
957
dpd_file2_mat_close(&Lia);
958
dpd_file2_close(&RIA);
959
dpd_file2_close(&Ria);
960
dpd_file2_close(&LIA);
961
dpd_file2_close(&Lia);
963
/* Z2(ME,IA) <MJ|EB>(ME,JB) + Z2(me,IA) <mJ|eB>(me,JB) */
964
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,JB)");
965
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
966
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVOV");
967
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
970
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
971
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovOV");
972
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
975
dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (IJ,AB)");
978
/* add in Z2(IJ,AB) permutations */
979
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (IJ,AB)");
980
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "XIJAB");
981
dpd_buf4_axpy(&Z2, &XIJAB, 1.0);
982
dpd_buf4_close(&XIJAB);
983
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", -1.0);
984
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", -1.0);
985
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "XIJAB", 1.0);
988
/* Z2(me,ia) <mj|eb>(me,jb) + Z2(ME,ia) <Mj|Eb>(ME,jb) */
989
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (ia,jb)");
990
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
991
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovov");
992
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
995
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
996
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
997
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
1000
dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (ij,ab)");
1001
dpd_buf4_close(&Z2);
1003
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (ij,ab)");
1004
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "Xijab");
1005
dpd_buf4_axpy(&Z2, &XIJAB, 1.0);
1006
dpd_buf4_close(&XIJAB);
1007
dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", -1.0);
1008
dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", -1.0);
1009
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "Xijab", 1.0);
1010
dpd_buf4_close(&Z2);
1012
/* Z2(ME,IA) <Mj|Eb>(ME,jb) + Z2(me,IA) <mj|eb>(me,jb) */
1013
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,jb)");
1014
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVOV");
1015
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
1016
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
1019
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovOV");
1020
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
1021
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
1025
/* XIjAb += ZMjEb <MI|EA> + Zmjeb <mI|eA> */
1026
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
1027
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
1028
dpd_contract444(&D, &Z, &Z2, 1, 1, 1.0, 1.0);
1031
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
1032
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovov");
1033
dpd_contract444(&D, &Z, &Z2, 1, 1, 1.0, 1.0);
1036
dpd_buf4_sort_axpy(&Z2, EOM_XI, prqs, 0, 5, "XIjAb", 1.0);
1037
dpd_buf4_close(&Z2);
1039
/* XIjAb += ZmjEA <mI|bE> + ZMIeb <Mj|Ae> */
1040
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (Ib,jA)");
1041
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
1042
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_oVoV");
1043
dpd_contract444(&D, &Z, &Z2, 1, 1, 1.0, 0.0);
1047
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OvOv");
1048
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
1049
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
1052
dpd_buf4_sort_axpy(&Z2, EOM_XI, prsq, 0, 5, "XIjAb", 1.0);
1053
dpd_buf4_close(&Z2);
1059
/* compute term 14 of Xi2 amplitudes for all spin cases */
1060
/* Xijab += P(ij) P(ab) (Lmjeb Rme) Fia */
1064
dpdfile2 IIA, Iia, FME, Fme;
1065
int L_irr, R_irr, G_irr, nirreps;
1066
int I, A, J, B, i, a, j, b, h, row, col, Isym, Asym, Jsym, Bsym;
1067
int II, AA, JJ, BB, ii, aa, jj, bb, IIsym, AAsym, JJsym, BBsym;
1068
dpdbuf4 Z, XIJAB, Xijab, XIjAb;
1070
L_irr = params.L_irr;
1071
R_irr = params.R_irr;
1072
G_irr = params.G_irr;
1073
nirreps = moinfo.nirreps;
1075
dpd_file2_init(&IIA, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
1076
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
1077
dpd_file2_mat_init(&IIA);
1078
dpd_file2_mat_init(&FME);
1079
dpd_file2_mat_rd(&IIA);
1080
dpd_file2_mat_rd(&FME);
1082
if (params.ref == 1) {
1083
dpd_file2_init(&Iia, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
1084
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
1086
else if (params.ref == 2) {
1087
dpd_file2_init(&Iia, EOM_TMP, G_irr, 2, 3, "L2R1_ov");
1088
dpd_file2_init(&Fme, CC_OEI, 0, 2, 3, "Fme");
1091
if (params.ref != 0) {
1092
dpd_file2_mat_init(&Iia);
1093
dpd_file2_mat_rd(&Iia);
1094
dpd_file2_mat_init(&Fme);
1095
dpd_file2_mat_rd(&Fme);
1098
/* build Z(IJ,AB) = FME(I,A) L2R1_OV(J,B) */
1099
if (params.ref != 0) { /* ROHF or UHF for XIJAB */
1100
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (IJ,AB)");
1101
for(h=0; h < nirreps; h++) {
1102
dpd_buf4_mat_irrep_init(&Z, h);
1103
for(row=0; row < Z.params->rowtot[h]; row++) {
1104
i = Z.params->roworb[h][row][0];
1105
j = Z.params->roworb[h][row][1];
1106
I = FME.params->rowidx[i]; Isym = FME.params->psym[i];
1107
J = IIA.params->rowidx[j]; Jsym = IIA.params->psym[j];
1108
for(col=0; col < Z.params->coltot[h^G_irr]; col++) {
1109
a = Z.params->colorb[h^G_irr][col][0];
1110
b = Z.params->colorb[h^G_irr][col][1];
1111
A = FME.params->colidx[a]; Asym = FME.params->qsym[a];
1112
B = IIA.params->colidx[b]; Bsym = IIA.params->qsym[b];
1113
if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
1114
Z.matrix[h][row][col] += FME.matrix[Isym][I][A] * IIA.matrix[Jsym][J][B];
1117
dpd_buf4_mat_irrep_wrt(&Z, h);
1118
dpd_buf4_mat_irrep_close(&Z, h);
1120
/* XIJAB += P(IJ) P(AB) Z(IJ,AB) */
1121
dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "XIJAB");
1122
dpd_buf4_axpy(&Z, &XIJAB, 1.0);
1123
dpd_buf4_close(&XIJAB);
1124
dpd_buf4_sort_axpy(&Z, EOM_XI, qprs, 2, 7, "XIJAB", -1.0);
1125
dpd_buf4_sort_axpy(&Z, EOM_XI, pqsr, 2, 7, "XIJAB", -1.0);
1126
dpd_buf4_sort_axpy(&Z, EOM_XI, qpsr, 2, 7, "XIJAB", 1.0);
1130
/* build Z(ij,ab) = Fme(i,a) L2R1_ov(j,b) */
1131
if (params.ref != 0) { /* ROHF or UHF for Xijab */
1132
if (params.ref == 1)
1133
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (ij,ab)");
1134
else if (params.ref == 2)
1135
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 15, 10, 15, 0, "Z (ij,ab)");
1136
for(h=0; h < nirreps; h++) {
1137
dpd_buf4_mat_irrep_init(&Z, h);
1138
for(row=0; row < Z.params->rowtot[h]; row++) {
1139
i = Z.params->roworb[h][row][0];
1140
j = Z.params->roworb[h][row][1];
1141
I = Fme.params->rowidx[i]; Isym = Fme.params->psym[i];
1142
J = Iia.params->rowidx[j]; Jsym = Iia.params->psym[j];
1143
for(col=0; col < Z.params->coltot[h^G_irr]; col++) {
1144
a = Z.params->colorb[h^G_irr][col][0];
1145
b = Z.params->colorb[h^G_irr][col][1];
1146
A = Fme.params->colidx[a]; Asym = Fme.params->qsym[a];
1147
B = Iia.params->colidx[b]; Bsym = Iia.params->qsym[b];
1148
if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
1149
Z.matrix[h][row][col] += Fme.matrix[Isym][I][A] * Iia.matrix[Jsym][J][B];
1152
dpd_buf4_mat_irrep_wrt(&Z, h);
1153
dpd_buf4_mat_irrep_close(&Z, h);
1155
/* Xijab += P(ij) P(ab) Z(ij,ab) */
1156
if (params.ref == 1) {
1157
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 5, 2, 7, 0, "Xijab");
1158
dpd_buf4_axpy(&Z, &Xijab, 1.0);
1159
dpd_buf4_close(&Xijab);
1160
dpd_buf4_sort_axpy(&Z, EOM_XI, qprs, 2, 7, "Xijab", -1.0);
1161
dpd_buf4_sort_axpy(&Z, EOM_XI, pqsr, 2, 7, "Xijab", -1.0);
1162
dpd_buf4_sort_axpy(&Z, EOM_XI, qpsr, 2, 7, "Xijab", 1.0);
1165
else if (params.ref == 2) {
1166
dpd_buf4_init(&Xijab, EOM_XI, G_irr, 10, 15, 12, 17, 0, "Xijab");
1167
dpd_buf4_axpy(&Z, &Xijab, 1.0);
1168
dpd_buf4_close(&Xijab);
1169
dpd_buf4_sort_axpy(&Z, EOM_XI, qprs, 12, 17, "Xijab", -1.0);
1170
dpd_buf4_sort_axpy(&Z, EOM_XI, pqsr, 12, 17, "Xijab", -1.0);
1171
dpd_buf4_sort_axpy(&Z, EOM_XI, qpsr, 12, 17, "Xijab", 1.0);
1176
/* XIjAb += FME(I,A) L2R1_ov(j,b) + IIA(I,A) F(j,b) */
1177
if (params.ref == 0) { /* RHF XIjAb */
1178
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
1179
for(h=0; h < nirreps; h++) {
1180
dpd_buf4_mat_irrep_init(&XIjAb, h);
1181
dpd_buf4_mat_irrep_rd(&XIjAb, h);
1182
for(row=0; row < XIjAb.params->rowtot[h]; row++) {
1183
i = XIjAb.params->roworb[h][row][0];
1184
j = XIjAb.params->roworb[h][row][1];
1185
I = FME.params->rowidx[i]; Isym = FME.params->psym[i];
1186
J = IIA.params->rowidx[j]; Jsym = IIA.params->psym[j];
1187
II = IIA.params->rowidx[i]; IIsym = IIA.params->psym[i];
1188
JJ = FME.params->rowidx[j]; JJsym = FME.params->psym[j];
1189
for(col=0; col < XIjAb.params->coltot[h^G_irr]; col++) {
1190
a = XIjAb.params->colorb[h^G_irr][col][0];
1191
b = XIjAb.params->colorb[h^G_irr][col][1];
1192
A = FME.params->colidx[a]; Asym = FME.params->qsym[a];
1193
B = IIA.params->colidx[b]; Bsym = IIA.params->qsym[b];
1194
AA = IIA.params->colidx[a]; AAsym = IIA.params->qsym[a];
1195
BB = FME.params->colidx[b]; BBsym = FME.params->qsym[b];
1196
if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
1197
XIjAb.matrix[h][row][col] += FME.matrix[Isym][I][A] * IIA.matrix[Jsym][J][B];
1198
if( ((IIsym^AAsym)==G_irr) && (JJsym==BBsym) )
1199
XIjAb.matrix[h][row][col] += IIA.matrix[IIsym][II][AA] * FME.matrix[JJsym][JJ][BB];
1202
dpd_buf4_mat_irrep_wrt(&XIjAb, h);
1203
dpd_buf4_mat_irrep_close(&XIjAb, h);
1205
dpd_buf4_close(&XIjAb);
1206
dpd_file2_mat_close(&IIA);
1207
dpd_file2_close(&IIA);
1208
dpd_file2_mat_close(&FME);
1209
dpd_file2_close(&FME);
1211
else { /* ROHF and UHF XIjAb */
1212
if (params.ref == 1)
1213
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
1214
else if (params.ref == 2)
1215
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 22, 28, 22, 28, 0, "XIjAb");
1216
for(h=0; h < nirreps; h++) {
1217
dpd_buf4_mat_irrep_init(&XIjAb, h);
1218
dpd_buf4_mat_irrep_rd(&XIjAb, h);
1219
for(row=0; row < XIjAb.params->rowtot[h]; row++) {
1220
i = XIjAb.params->roworb[h][row][0];
1221
j = XIjAb.params->roworb[h][row][1];
1222
I = FME.params->rowidx[i]; Isym = FME.params->psym[i];
1223
J = Iia.params->rowidx[j]; Jsym = Iia.params->psym[j];
1224
II = IIA.params->rowidx[i]; IIsym = IIA.params->psym[i];
1225
JJ = Fme.params->rowidx[j]; JJsym = Fme.params->psym[j];
1226
for(col=0; col < XIjAb.params->coltot[h^G_irr]; col++) {
1227
a = XIjAb.params->colorb[h^G_irr][col][0];
1228
b = XIjAb.params->colorb[h^G_irr][col][1];
1229
A = FME.params->colidx[a]; Asym = FME.params->qsym[a];
1230
B = Iia.params->colidx[b]; Bsym = Iia.params->qsym[b];
1231
AA = IIA.params->colidx[a]; AAsym = IIA.params->qsym[a];
1232
BB = Fme.params->colidx[b]; BBsym = Fme.params->qsym[b];
1233
if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
1234
XIjAb.matrix[h][row][col] += FME.matrix[Isym][I][A] * Iia.matrix[Jsym][J][B];
1235
if( ((IIsym^AAsym)==G_irr) && (JJsym==BBsym) )
1236
XIjAb.matrix[h][row][col] += IIA.matrix[IIsym][II][AA] * Fme.matrix[JJsym][JJ][BB];
1239
dpd_buf4_mat_irrep_wrt(&XIjAb, h);
1240
dpd_buf4_mat_irrep_close(&XIjAb, h);
1242
dpd_buf4_close(&XIjAb);
1243
dpd_file2_mat_close(&IIA); dpd_file2_mat_close(&Iia);
1244
dpd_file2_close(&IIA); dpd_file2_close(&Iia);
1245
dpd_file2_mat_close(&FME); dpd_file2_mat_close(&Fme);
1246
dpd_file2_close(&FME); dpd_file2_close(&Fme);