3
\brief Enter brief description of file here
6
#include <libdpd/dpd.h>
14
namespace psi { namespace ccdensity {
16
void x_xi2_4_rhf(void);
17
extern void x_xi2_14(void);
18
extern void x_xi_check(char *term_lbl);
19
extern double norm_C_rhf(dpdfile2 *CME, dpdbuf4 *CMnEf, dpdbuf4 *CMnfE);
21
/* compute xi_2 amplitudes for RHF wavefunctions for zeta equations */
25
dpdfile2 L1, XIA, Xia, I1, R1, F1, Z1A, Z1B;
26
int L_irr, R_irr, G_irr;
28
dpdbuf4 D2, R2, L2, H2, I2, Z, Z2, XIJAB, Xijab, XIjAb;
38
/* terms 1 and 5, Xijab += (Lme Rme + 0.25 Lmnef Rmnef) <ij||eb> */
39
/* overlaps in params are assigned in x_xi1.c */
40
/* see comments in xi1_connected.c */
41
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
42
dpd_buf4_scmcopy(&D2, EOM_XI, "XIjAb", params.overlap1+params.overlap2);
45
x_xi_check("terms 1 and 5");
48
/* terms 2 and 9, Xijab -= P(ab) (Lma Rme + Lmnfa Rmnfe) <ij||eb */
49
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "X (Ij,Ab)");
50
dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_VV");
51
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
52
dpd_contract424(&D2, &I1, &Z2, 3, 1, 0, 1.0, 0.0);
55
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
56
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
57
dpd_buf4_sort(&Z2, EOM_TMP1, qpsr, 0, 5, "X (jI,bA)");
59
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "X (jI,bA)");
60
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
62
dpd_buf4_close(&XIjAb);
64
x_xi_check("terms 2 and 9");
67
/* terms 3 and 10, Xijab -= P(ij) (Lie Rme + 0.5 Linef Rmnef) <mj||ab> */
68
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "X (Ij,Ab)");
69
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_OO");
70
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
71
dpd_contract244(&I1, &D2, &Z2, 1, 0, 0, 1.0, 0.0);
74
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
75
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
76
dpd_buf4_sort(&Z2, EOM_TMP1, qpsr, 0, 5, "X (jI,bA)");
78
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "X (jI,bA)");
79
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
81
dpd_buf4_close(&XIjAb);
83
x_xi_check("terms 3 and 10");
88
x_xi_check("terms 4 and 6");
91
/* term 7, Xijab += 0.25 Lmnab Rmnef <ij||ef> */
92
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
93
dpd_buf4_init(&R2, CC_GR, R_irr, 0, 5, 0, 5, 0, "RIjAb");
94
dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 0, 0, 0, 0, 0, "Z (Ij,Mn)");
95
dpd_contract444(&D2, &R2, &Z2, 0, 0, 1.0, 0.0);
98
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
99
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
100
dpd_contract444(&Z2, &L2, &XIjAb, 0, 1, 1.0, 1.0);
103
dpd_buf4_close(&XIjAb);
105
x_xi_check("term 7");
108
/* term 8, Xijab += 0.25 Rmnef Lijef <mn||ab> */
109
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
110
dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 0, 0, 0, 0, "R2L2_OoOo");
111
dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
112
dpd_contract444(&I2, &D2, &XIjAb, 1, 1, 1.0, 1.0);
115
dpd_buf4_close(&XIjAb);
117
x_xi_check("term 8");
120
/* term 11, Xijab -= 0.5 P(ab) Lijfb (Rmnef <mn||ea>) */
121
/* term 17 -= P(ab) Lijfb (Rmf Fma) */
122
/* term 20 += P(ab) Lijfb (Rme Wfmae) */
123
/* build 1-e intermediates to include term 17 */
125
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 1, 1, "RD_VV");
126
dpd_file2_copy(&I1, EOM_TMP1, "X1 (F,A)");
127
dpd_file2_close(&I1);
128
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "X1 (F,A)");
130
dpd_file2_init(&Z1A, EOM_TMP_XI, R_irr, 1, 1, "R1Wamef_VV");
131
dpd_file2_axpy(&Z1A, &I1, -1.0, 0);
132
dpd_file2_close(&Z1A);
134
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
135
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
136
dpd_contract222(&R1, &F1, &I1, 1, 1, 1.0, 1.0);
137
dpd_file2_close(&F1);
138
dpd_file2_close(&R1);
139
dpd_file2_close(&I1);
141
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "XIjAb");
142
dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "X1 (F,A)");
143
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
144
dpd_contract244(&I1, &L2, &Z2, 0, 2, 1, 1.0, 0.0);
146
dpd_file2_close(&I1);
147
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
148
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
149
dpd_buf4_close(&XIjAb);
150
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", -1.0);
153
x_xi_check("terms 11, 17 and 20");
156
/* term 12, Xijab -= 0.5 P(ij) Lmjab (Rmnef <in||ef>) */
157
/* term 16, -= P(ij) Lmjab (Rme Fie) */
158
/* term 21, -= P(ij) Lmjab (Rne Winme) */
159
/* make 1-electron intermediates to include terms 16 and 21 as well */
161
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_OO");
162
dpd_file2_copy(&I1, EOM_TMP1, "X1 (M,I)");
163
dpd_file2_close(&I1);
164
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "X1 (M,I)");
166
dpd_file2_init(&Z1A, EOM_TMP_XI, R_irr, 0, 0, "R1Wmnie_OO");
167
dpd_file2_axpy(&Z1A, &I1, 1.0, 1);
168
dpd_file2_close(&Z1A);
170
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
171
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
172
dpd_contract222(&R1, &F1, &I1, 0, 0, 1.0, 1.0);
173
dpd_file2_close(&F1);
174
dpd_file2_close(&R1);
175
dpd_file2_close(&I1);
177
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "XIjAb");
178
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "X1 (M,I)");
179
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
180
dpd_contract244(&I1, &L2, &Z2, 0, 0, 0, 1.0, 0.0);
182
dpd_file2_close(&I1);
183
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
184
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
185
dpd_buf4_close(&XIjAb);
186
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", -1.0);
189
x_xi_check("term 12, 16 and 21");
192
/* term 13 + 15, (0.25 Rmnef <mn||ef> + Rme Fme) Lijab */
193
if ( (L_irr == 0) && (!params.connect_xi)) {
194
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
195
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
196
tval = 2.0 * dpd_file2_dot(&R1, &F1);
197
dpd_file2_close(&F1);
198
dpd_file2_close(&R1);
199
tval += params.RD_overlap;
201
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
202
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
203
dpd_buf4_axpy(&L2, &XIjAb, tval);
205
dpd_buf4_close(&XIjAb);
207
x_xi_check("term 13 (ijab) and 15 (Fme)");
211
/* term 14, +P(ij) P(ab) Lmjeb Rme Fia */
212
if (!params.connect_xi) {
215
x_xi_check("term 14 (Fme)");
219
/* term 22, +P(ij) (Limfe Rme) Wfjab */
220
if (!params.connect_xi) {
221
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "X (Ij,Ab)");
222
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
223
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
224
dpd_contract244(&I1, &H2, &Z2, 1, 0, 0, 1.0, 0.0);
226
dpd_file2_close(&I1);
227
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
228
dpd_buf4_axpy(&Z2, &XIjAb, 1.0);
229
dpd_buf4_close(&XIjAb);
230
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", 1.0);
233
x_xi_check("term 22 (Wamef)");
237
/* term 23, -P(ab) (Lmnea Rme) Wijnb */
238
if (!params.connect_xi) {
239
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "X (Ij,Ab)");
240
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
241
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
242
dpd_contract244(&I1, &H2, &Z2, 0, 2, 1, 1.0, 0.0);
244
dpd_file2_close(&I1);
245
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
246
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
247
dpd_buf4_close(&XIjAb);
248
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", -1.0);
251
x_xi_check("term 23 (Wmnie)");
255
/* term 25, Xijab += (Lnmab Rme) Wijne */
256
dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 0, 0, 0, 0, 0, "X (Ij,Nm)");
257
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
258
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
259
dpd_contract424(&H2, &R1, &Z2, 3, 1, 0, 1.0, 0.0);
260
dpd_file2_close(&R1);
262
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "XIjAb");
263
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
264
dpd_contract444(&Z2, &L2, &Z, 0, 1, 1.0, 0.0);
267
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
268
dpd_buf4_axpy(&Z, &XIjAb, 1.0);
269
dpd_buf4_close(&XIjAb);
270
dpd_buf4_sort_axpy(&Z, EOM_XI, qpsr, 0, 5, "XIjAb", 1.0);
273
x_xi_check("term 25 (Wmnie)");
276
/* term 24, Xijab -= (Lijfe Rme) Wfmab */
277
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "X (Ij,Ab)");
278
dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 11, 0, 11, 0, "L2R1_OoVo");
279
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
280
dpd_contract444(&I2, &H2, &Z2, 0, 1, 1.0, 0.0);
283
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
284
dpd_buf4_axpy(&Z2, &XIjAb, -1.0);
285
dpd_buf4_close(&XIjAb);
286
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", -1.0);
289
x_xi_check("term 24 (Wamef)");
292
/* terms 18, 19: Xijab -= P(ij) P(ab) Linae (Rme Wmjnb + Rnf Wejbf) */
293
/* construct Z(JB,NE) = RME WMJNB + RNF WEJBF */
294
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 10, 11, 10, 0, "Z (Ej,Nb)");
295
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
296
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
297
dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
299
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
300
dpd_contract244(&R1, &H2, &Z, 1, 2, 1, -1.0, 1.0);
302
dpd_file2_close(&R1);
303
dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 10, "Z (jE,Nb)");
305
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jE,Nb)");
306
dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (jb,NE)");
309
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Je,Nb)");
310
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
311
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
312
dpd_contract424(&H2, &R1, &Z, 1, 0, 1, -1.0, 0.0);
313
dpd_file2_close(&R1);
316
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z (eJ,bN)");
317
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
318
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
319
dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 0.0);
320
dpd_file2_close(&R1);
322
dpd_buf4_sort_axpy(&Z, EOM_TMP1, qpsr, 10, 10, "Z (Je,Nb)", 1.0);
325
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Je,Nb)");
326
dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (Jb,Ne)");
329
/* XIjAb += - L(IA,NE) Z(jb,NE) - L(IA,ne) Z(jb,ne) */
330
/* - L(jb,ne) Z(IA,ne) - L(jb,NE) Z(IA,NE) transpose of line above */
331
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "XIjAb (IA,jb)");
332
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "2LIjAb - LIjbA (IA,jb)");
333
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,NE)");
334
dpd_contract444(&L2, &Z, &Z2, 0, 0, -1.0, 0.0);
337
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAjb");
338
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Jb,Ne)");
339
dpd_contract444(&L2, &Z, &Z2, 0, 0, -1.0, 1.0);
343
dpd_buf4_sort(&Z2, EOM_TMP1, rspq, 10, 10, "XIjAb (jb,IA)");
344
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "XIjAb (jb,IA)");
345
dpd_buf4_axpy(&Z, &Z2, 1.0);
347
dpd_buf4_sort_axpy(&Z2, EOM_XI, prqs, 0, 5, "XIjAb", 1.0);
350
/* XIjAb += + L(jA,Ne) Z(Ib,Ne) + L(Ib,nE) Z(jA,nE) */
351
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (Ib,jA)");
352
dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LjAIb");
353
dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Jb,Ne)");
354
dpd_contract444(&Z, &L2, &Z2, 0, 0, -1.0, 0.0);
358
dpd_buf4_sort(&Z2, EOM_TMP1, rspq, 10, 10, "Z2 (jA,Ib)");
359
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (jA,Ib)");
360
dpd_buf4_axpy(&Z, &Z2, 1.0);
362
dpd_buf4_sort_axpy(&Z2, EOM_XI, prsq, 0, 5, "XIjAb", 1.0);
365
x_xi_check("terms 18, 19 (Wmnie, Wamef)");
368
/* Write irrep of XI amplitudes to CC_INFO */
369
psio_write_entry(CC_INFO, "XI Irrep", (char *) &G_irr,sizeof(int));
371
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
372
tval = 2.0 * dpd_file2_dot_self(&XIA);
373
dpd_file2_close(&XIA);
374
fprintf(outfile,"XI_IA amplitudes: Norm=%15.10lf, Dot=%15.10lf\n", sqrt(tval), tval );
376
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
377
dpd_buf4_sort(&XIjAb, EOM_TMP1, pqsr, 0, 5, "XIjbA");
378
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "XIjbA");
379
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
380
tval = norm_C_rhf(&XIA, &XIjAb, &Z2);
381
dpd_file2_close(&XIA);
382
dpd_buf4_close(&XIjAb);
384
fprintf(outfile,"XI amplitudes : Norm=%15.10lf, Dot=%15.10lf\n", sqrt(tval), tval );
386
psio_close(EOM_TMP1,0);
387
psio_open(EOM_TMP1, PSIO_OPEN_NEW);
393
/* compute terms 4 and 6 of xi2 amplitudes */
394
/* Xijab += P(ij) P(ab) (Rme Lia + Rmnef Linaf) <mj||eb> */
395
void x_xi2_4_rhf(void)
398
int L_irr, R_irr, G_irr, nirreps;
399
int I, A, M, E, i, a, m, e, h, row, col, Isym, Esym, Asym, Msym;
400
dpdbuf4 D, R2, L2, H2, I2, Z, Z2, XIjAb;
402
L_irr = params.L_irr;
403
R_irr = params.R_irr;
404
G_irr = params.G_irr;
405
nirreps = moinfo.nirreps;
407
/* construct RL = Rme Lia + Rmnef Linaf */
408
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVov");
409
dpd_buf4_copy(&I2, EOM_TMP1, "RL_OVov");
412
/* RL_OVOV(me,ia) += Rme Lia */
413
dpd_file2_init(&RIA, CC_GR, R_irr, 0, 1, "RIA");
414
dpd_file2_init(&LIA, CC_GL, L_irr, 0, 1, "LIA");
416
dpd_file2_mat_init(&RIA);
417
dpd_file2_mat_init(&LIA);
418
dpd_file2_mat_rd(&RIA);
419
dpd_file2_mat_rd(&LIA);
421
dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
422
for(h=0; h < nirreps; h++) {
423
dpd_buf4_mat_irrep_init(&I2, h);
424
dpd_buf4_mat_irrep_rd(&I2, h);
425
for(row=0; row < I2.params->rowtot[h]; row++) {
426
m = I2.params->roworb[h][row][0];
427
e = I2.params->roworb[h][row][1];
428
M = RIA.params->rowidx[m]; Msym = RIA.params->psym[m];
429
E = RIA.params->colidx[e]; Esym = RIA.params->qsym[e];
430
for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
431
i = I2.params->colorb[h^G_irr][col][0];
432
a = I2.params->colorb[h^G_irr][col][1];
433
I = LIA.params->rowidx[i]; Isym = LIA.params->psym[i];
434
A = LIA.params->colidx[a]; Asym = LIA.params->qsym[a];
435
if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
436
I2.matrix[h][row][col] += RIA.matrix[Msym][M][E] * LIA.matrix[Isym][I][A];
439
dpd_buf4_mat_irrep_wrt(&I2, h);
440
dpd_buf4_mat_irrep_close(&I2, h);
444
/* XIjAb += RL_OVov(me,IA) * (2<Mj|Eb> - <Mj|Be>) for the ZOVOV alpha case
445
and the reverse of this multiplication for the Zovov beta case */
446
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "X2 (IA,jb)");
447
dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
448
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D 2<ij|ab> - <ij|ba> (ia,jb)");
449
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
452
/* XIjAb += RL_OvOv(Me,Ia) * (<Mj|Eb> (ME,jb) and the reverse of this
453
to finish the all beta and all alpha spin orbital components */
454
dpd_buf4_init(&Z, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OvOv");
455
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
456
dpd_contract444(&D, &Z, &Z2, 1, 1, 1.0, 1.0);
460
dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "XIjAb");
462
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "XIjAb");
463
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
464
dpd_buf4_axpy(&Z2, &XIjAb, 1.0);
465
dpd_buf4_close(&XIjAb);
466
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", 1.0);
469
/* Now do Z alpha beta parts */
470
/* XIjAb += ZmEjA <mI|bE> (mE,Ib) + ZMeIb <Mj|Ae> (Me,jA) */
471
dpd_buf4_init(&Z2, EOM_TMP1, 0, 10, 10, 10, 10, 0, "X2 (Ib,jA)");
472
dpd_buf4_init(&Z, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OvOv");
473
dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
474
dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
478
dpd_buf4_sort(&Z2, EOM_TMP1, prsq, 0, 5, "XIjAb");
480
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "XIjAb");
481
dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
482
dpd_buf4_axpy(&Z2, &XIjAb, 1.0);
483
dpd_buf4_close(&XIjAb);
484
dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", 1.0);
491
}} // namespace psi::ccdensity