3
\brief Enter brief description of file here
5
#include <libdpd/dpd.h>
12
namespace psi { namespace ccdensity {
14
/* Iij(): Build the occupied-occupied block of the orbital Lagrangian
15
** using the expression given in lag.c. Note that we include an
16
** addition term here referred to as the reference contribution,
17
** 2*fij. This comes from the general spin-orbital SCF gradient
18
** expression and is present for all reference types (though for
19
** canonical unperturbed orbitals, only the diagonal elements
20
** contribute, of course).
22
** Note that the code currently produces only the unique I_IJ terms,
23
** but the actual contractions still need to be spin-adapted for
24
** greater efficiency.
29
void Iij(struct RHO_Params rho_params)
32
dpdbuf4 G, Aints, Fints, Dints, Cints, Eints;
34
if(params.ref == 0) { /** RHF **/
35
/* I'IJ <-- sum_K fIK (DJK + DKJ) + sum_A fIA (DJA + DAJ) */
36
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
38
dpd_file2_init(&F, CC_OEI, 0, 0, 0, "fIJ");
39
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
40
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 0.0);
41
dpd_contract222(&F, &D, &I, 0, 1, 1.0, 1.0);
44
/* Add reference contribution: I'IJ <-- 2 fIJ */
45
dpd_file2_axpy(&F, &I, 2.0, 0);
48
dpd_file2_init(&F, CC_OEI, 0, 0, 1, "fIA");
49
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
50
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
52
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
53
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
59
else if(params.ref == 1) { /** ROHF **/
61
/* I'IJ <-- sum_K fIK (DJK + DKJ) + sum_A fIA (DJA + DAJ) */
62
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
64
dpd_file2_init(&F, CC_OEI, 0, 0, 0, "fIJ");
65
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
66
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 0.0);
67
dpd_contract222(&F, &D, &I, 0, 1, 1.0, 1.0);
70
/* Add reference contribution: I'IJ <-- 2 fIJ */
71
dpd_file2_axpy(&F, &I, 2.0, 0);
74
dpd_file2_init(&F, CC_OEI, 0, 0, 1, "fIA");
75
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
76
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
78
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
79
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
85
/* I'ij <-- sum_k fik (Djk + Dkj) + sum_a fia (Dja + Daj) */
86
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
88
dpd_file2_init(&F, CC_OEI, 0, 0, 0, "fij");
89
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
90
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 0.0);
91
dpd_contract222(&F, &D, &I, 0, 1, 1.0, 1.0);
94
/* Add reference contribution: I'ij <-- 2 fij */
95
dpd_file2_axpy(&F, &I, 2.0, 0);
98
dpd_file2_init(&F, CC_OEI, 0, 0, 1, "fia");
99
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
100
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
102
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
103
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
109
else if(params.ref == 2) { /** UHF **/
111
/* I'IJ <-- sum_K fIK (DJK + DKJ) + sum_A fIA (DJA + DAJ) */
112
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
114
dpd_file2_init(&F, CC_OEI, 0, 0, 0, "fIJ");
115
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
116
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 0.0);
117
dpd_contract222(&F, &D, &I, 0, 1, 1.0, 1.0);
120
/* Add reference contribution: I'IJ <-- 2 fIJ */
121
dpd_file2_axpy(&F, &I, 2.0, 0);
124
dpd_file2_init(&F, CC_OEI, 0, 0, 1, "fIA");
125
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
126
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
128
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
129
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
135
/* I'ij <-- sum_k fik (Djk + Dkj) + sum_a fia (Dja + Daj) */
136
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
138
dpd_file2_init(&F, CC_OEI, 0, 2, 2, "fij");
139
dpd_file2_init(&D, CC_OEI, 0, 2, 2, rho_params.Dij_lbl);
140
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 0.0);
141
dpd_contract222(&F, &D, &I, 0, 1, 1.0, 1.0);
144
/* Add reference contribution: I'ij <-- 2 fij */
145
dpd_file2_axpy(&F, &I, 2.0, 0);
148
dpd_file2_init(&F, CC_OEI, 0, 2, 3, "fia");
149
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
150
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
152
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
153
dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
160
if(params.ref == 0) { /** RHF **/
161
/* I'IJ <-- sum_KL <IK||JL> (D_KL + D_LK) + sum_kl <Ik|Jl> (D_kl + D_lk) */
162
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
164
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
165
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 1, "A <ij|kl>");
166
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
167
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
168
dpd_buf4_close(&Aints);
171
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
172
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 0, "A <ij|kl>");
173
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
174
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
175
dpd_buf4_close(&Aints);
180
else if(params.ref == 1) { /** ROHF **/
182
/* I'IJ <-- sum_KL <IK||JL> (D_KL + D_LK) + sum_kl <Ik|Jl> (D_kl + D_lk) */
183
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
185
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
186
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 1, "A <ij|kl>");
187
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
188
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
189
dpd_buf4_close(&Aints);
192
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
193
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 0, "A <ij|kl>");
194
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
195
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
196
dpd_buf4_close(&Aints);
201
/* I'ij <-- sum_kl <ik||jl> (D_kl + D_lk) + sum_KL <iK|jL> (D_KL + D_LK) */
202
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
204
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
205
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 1, "A <ij|kl>");
206
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
207
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
208
dpd_buf4_close(&Aints);
211
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
212
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 0, "A <ij|kl>");
213
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
214
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
215
dpd_buf4_close(&Aints);
220
else if(params.ref == 2) { /** UHF **/
222
/* I'IJ <-- sum_KL <IK||JL> (D_KL + D_LK) + sum_kl <Ik|Jl> (D_kl + D_lk) */
223
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
225
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
226
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 1, "A <IJ|KL>");
227
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
228
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
229
dpd_buf4_close(&Aints);
232
dpd_file2_init(&D, CC_OEI, 0, 2, 2, rho_params.Dij_lbl);
233
dpd_buf4_init(&Aints, CC_AINTS, 0, 22, 22, 22, 22, 0, "A <Ij|Kl>");
234
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
235
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
236
dpd_buf4_close(&Aints);
241
/* I'ij <-- sum_kl <ik||jl> (D_kl + D_lk) + sum_KL <iK|jL> (D_KL + D_LK) */
242
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
244
dpd_file2_init(&D, CC_OEI, 0, 2, 2, rho_params.Dij_lbl);
245
dpd_buf4_init(&Aints, CC_AINTS, 0, 10, 10, 10, 10, 1, "A <ij|kl>");
246
dpd_dot24(&D, &Aints, &I, 0, 0, 1.0, 1.0);
247
dpd_dot24(&D, &Aints, &I, 1, 0, 1.0, 1.0);
248
dpd_buf4_close(&Aints);
251
dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
252
dpd_buf4_init(&Aints, CC_AINTS, 0, 22, 22, 22, 22, 0, "A <Ij|Kl>");
253
dpd_dot13(&D, &Aints, &I, 0, 0, 1.0, 1.0);
254
dpd_dot13(&D, &Aints, &I, 1, 0, 1.0, 1.0);
255
dpd_buf4_close(&Aints);
262
if(params.ref == 0) { /** RHF **/
263
/* I'IJ <-- sum_KA <IK||JA> (D_KA + D_AK) + sum_ka <Ik|Ja> (D_ka + D_ak) */
264
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
266
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
267
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
268
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
270
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
271
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
273
dpd_buf4_close(&Eints);
275
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
276
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
277
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
279
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
280
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
282
dpd_buf4_close(&Eints);
286
else if(params.ref == 1) { /** ROHF **/
288
/* I'IJ <-- sum_KA <IK||JA> (D_KA + D_AK) + sum_ka <Ik|Ja> (D_ka + D_ak) */
289
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
291
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
292
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
293
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
295
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
296
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
298
dpd_buf4_close(&Eints);
300
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
301
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
302
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
304
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
305
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
307
dpd_buf4_close(&Eints);
311
/* I'ij <-- sum_ka <ik||ja> (D_ka + D_ak) + sum_KA <iK|jA> (D_KA + D_AK) */
312
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
314
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
315
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
316
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
318
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
319
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
321
dpd_buf4_close(&Eints);
323
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
324
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
325
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
327
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
328
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
330
dpd_buf4_close(&Eints);
334
else if(params.ref == 2) { /** UHF **/
336
/* I'IJ <-- sum_KA <IK||JA> (D_KA + D_AK) + sum_ka <Ik|Ja> (D_ka + D_ak) */
337
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
339
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 20, 2, 20, 0, "E <IJ||KA> (I>J,KA)");
340
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
341
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
343
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
344
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
346
dpd_buf4_close(&Eints);
348
dpd_buf4_init(&Eints, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
349
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
350
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
352
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
353
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
355
dpd_buf4_close(&Eints);
359
/* I'ij <-- sum_ka <ik||ja> (D_ka + D_ak) + sum_KA <iK|jA> (D_KA + D_AK) */
360
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
362
dpd_buf4_init(&Eints, CC_EINTS, 0, 10, 30, 12, 30, 0, "E <ij||ka> (i>j,ka)");
363
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
364
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
366
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
367
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
369
dpd_buf4_close(&Eints);
371
dpd_buf4_init(&Eints, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
372
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
373
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
375
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
376
dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
378
dpd_buf4_close(&Eints);
383
if(params.ref == 0) { /** RHF **/
384
/* I'IJ <-- sum_AK <JK||IA> (D_AK + D_KA) + sum_ak <Jk|Ia> (D_ak + D_ka) */
385
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
387
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
388
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
389
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
391
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
392
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
394
dpd_buf4_close(&Eints);
396
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
397
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
398
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
400
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
401
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
403
dpd_buf4_close(&Eints);
407
else if(params.ref == 1) { /** ROHF **/
409
/* I'IJ <-- sum_AK <JK||IA> (D_AK + D_KA) + sum_ak <Jk|Ia> (D_ak + D_ka) */
410
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
412
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
413
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
414
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
416
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
417
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
419
dpd_buf4_close(&Eints);
421
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
422
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
423
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
425
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
426
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
428
dpd_buf4_close(&Eints);
432
/* I'ij <-- sum_ak <jk||ia> (D_ak + D_ka) + sum_AK <jK|iA> (D_AK + D_KA) */
433
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
435
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
436
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
437
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
439
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
440
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
442
dpd_buf4_close(&Eints);
444
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
445
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
446
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
448
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
449
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
451
dpd_buf4_close(&Eints);
455
else if(params.ref == 2) { /** UHF **/
457
/* I'IJ <-- sum_AK <JK||IA> (D_AK + D_KA) + sum_ak <Jk|Ia> (D_ak + D_ka) */
458
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
460
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 20, 2, 20, 0, "E <IJ||KA> (I>J,KA)");
461
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
462
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
464
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
465
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
467
dpd_buf4_close(&Eints);
469
dpd_buf4_init(&Eints, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
470
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
471
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
473
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
474
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
476
dpd_buf4_close(&Eints);
480
/* I'ij <-- sum_ak <jk||ia> (D_ak + D_ka) + sum_AK <jK|iA> (D_AK + D_KA) */
481
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
483
dpd_buf4_init(&Eints, CC_EINTS, 0, 10, 30, 12, 30, 0, "E <ij||ka> (i>j,ka)");
484
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
485
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
487
dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
488
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
490
dpd_buf4_close(&Eints);
492
dpd_buf4_init(&Eints, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
493
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
494
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
496
dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
497
dpd_dot24(&D, &Eints, &I, 0, 1, 1.0, 1.0);
499
dpd_buf4_close(&Eints);
505
if(params.ref == 0) { /** RHF **/
506
/* I'IJ <-- sum_AB <IA||JB> (D_AB + D_BA) + sum_ab <Ia|Jb> (D_ab + D_ba) */
507
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
509
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
510
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
511
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
512
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
513
dpd_buf4_close(&Cints);
516
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.Dab_lbl);
517
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
518
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
519
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
520
dpd_buf4_close(&Cints);
525
else if(params.ref == 1) { /** ROHF **/
527
/* I'IJ <-- sum_AB <IA||JB> (D_AB + D_BA) + sum_ab <Ia|Jb> (D_ab + D_ba) */
528
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
530
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
531
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
532
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
533
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
534
dpd_buf4_close(&Cints);
537
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.Dab_lbl);
538
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
539
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
540
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
541
dpd_buf4_close(&Cints);
546
/* I'ij <-- sum_ab <ia||jb> (D_ab + D_ba) + sum_AB <iA|jB> (D_AB + D_BA) */
547
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
549
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.Dab_lbl);
550
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
551
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
552
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
553
dpd_buf4_close(&Cints);
556
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
557
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
558
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
559
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
560
dpd_buf4_close(&Cints);
565
else if(params.ref == 2) { /** UHF **/
567
/* I'IJ <-- sum_AB <IA||JB> (D_AB + D_BA) + sum_ab <Ia|Jb> (D_ab + D_ba) */
568
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
570
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
571
dpd_buf4_init(&Cints, CC_CINTS, 0, 20, 20, 20, 20, 0, "C <IA||JB>");
572
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
573
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
574
dpd_buf4_close(&Cints);
577
dpd_file2_init(&D, CC_OEI, 0, 3, 3, rho_params.Dab_lbl);
578
dpd_buf4_init(&Cints, CC_CINTS, 0, 24, 24, 24, 24, 0, "C <Ia|Jb>");
579
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
580
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
581
dpd_buf4_close(&Cints);
586
/* I'ij <-- sum_ab <ia||jb> (D_ab + D_ba) + sum_AB <iA|jB> (D_AB + D_BA) */
587
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
589
dpd_file2_init(&D, CC_OEI, 0, 3, 3, rho_params.Dab_lbl);
590
dpd_buf4_init(&Cints, CC_CINTS, 0, 30, 30, 30, 30, 0, "C <ia||jb>");
591
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
592
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
593
dpd_buf4_close(&Cints);
596
dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
597
dpd_buf4_init(&Cints, CC_CINTS, 0, 27, 27, 27, 27, 0, "C <iA|jB>");
598
dpd_dot24(&D, &Cints, &I, 0, 0, 1.0, 1.0);
599
dpd_dot24(&D, &Cints, &I, 1, 0, 1.0, 1.0);
600
dpd_buf4_close(&Cints);
607
if(params.ref == 0) { /** RHF **/
608
/* I'IJ <-- 2 [ 2 (Gjklm - Gjkml) <ik|lm>] */
609
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
611
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 0, 0, 0, 0, "GIjKl");
612
dpd_buf4_scmcopy(&G, CC_GAMMA, "2 Gijkl - Gijlk", 2);
613
dpd_buf4_sort_axpy(&G, CC_GAMMA, pqsr, 0, 0, "2 Gijkl - Gijlk", -1);
615
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 0, 0, 0, 0, "2 Gijkl - Gijlk");
616
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 0, "A <ij|kl>");
617
dpd_contract442(&Aints, &G, &I, 0, 0, 2.0, 1.0);
618
dpd_buf4_close(&Aints);
622
else if(params.ref == 1) { /** ROHF **/
624
/* I'IJ <-- sum_KLM <IK||LM> G(JK,LM) + 2 sum_kLm <Ik|Lm> G(Jk,Lm) */
625
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
627
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 2, 0, 0, 1, "A <ij|kl>");
628
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 2, 2, 2, 0, "GIJKL");
629
dpd_contract442(&Aints, &G, &I, 0, 0, 2.0, 1.0);
631
dpd_buf4_close(&Aints);
633
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 0, "A <ij|kl>");
634
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 0, 0, 0, 0, "GIjKl");
635
dpd_contract442(&Aints, &G, &I, 0, 0, 2.0, 1.0);
637
dpd_buf4_close(&Aints);
641
/* I'ij <-- sum_klm <ik||lm> G(jk,lm) + 2 sum_KlM <Ki|Ml> G(Kj,Ml) */
642
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
644
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 2, 0, 0, 1, "A <ij|kl>");
645
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 2, 2, 2, 0, "Gijkl");
646
dpd_contract442(&Aints, &G, &I, 0, 0, 2.0, 1.0);
648
dpd_buf4_close(&Aints);
650
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 0, 0, 0, 0, "A <ij|kl>");
651
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 0, 0, 0, 0, "GIjKl");
652
dpd_contract442(&Aints, &G, &I, 1, 1, 2.0, 1.0);
654
dpd_buf4_close(&Aints);
659
else if(params.ref == 2) { /** UHF **/
661
/* I'IJ <-- sum_KLM <IK||LM> G(JK,LM) + 2 sum_kLm <Ik|Lm> G(Jk,Lm) */
662
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
664
dpd_buf4_init(&Aints, CC_AINTS, 0, 0, 2, 0, 0, 1, "A <IJ|KL>");
665
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 2, 2, 2, 0, "GIJKL");
666
dpd_contract442(&Aints, &G, &I, 0, 0, 2.0, 1.0);
668
dpd_buf4_close(&Aints);
670
dpd_buf4_init(&Aints, CC_AINTS, 0, 22, 22, 22, 22, 0, "A <Ij|Kl>");
671
dpd_buf4_init(&G, CC_GAMMA, 0, 22, 22, 22, 22, 0, "GIjKl");
672
dpd_contract442(&Aints, &G, &I, 0, 0, 2.0, 1.0);
674
dpd_buf4_close(&Aints);
678
/* I'ij <-- sum_klm <ik||lm> G(jk,lm) + 2 sum_KlM <Ki|Ml> G(Kj,Ml) */
679
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
681
dpd_buf4_init(&Aints, CC_AINTS, 0, 10, 12, 10, 10, 1, "A <ij|kl>");
682
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 12, 12, 12, 0, "Gijkl");
683
dpd_contract442(&Aints, &G, &I, 0, 0, 2.0, 1.0);
685
dpd_buf4_close(&Aints);
687
dpd_buf4_init(&Aints, CC_AINTS, 0, 22, 22, 22, 22, 0, "A <Ij|Kl>");
688
dpd_buf4_init(&G, CC_GAMMA, 0, 22, 22, 22, 22, 0, "GIjKl");
689
dpd_contract442(&Aints, &G, &I, 1, 1, 2.0, 1.0);
691
dpd_buf4_close(&Aints);
697
if(params.ref == 0) { /** RHF **/
698
/* I'IJ <-- sum_ABC <IA||BC> G(JA,BC) + 2 sum_AbC <aI|bC> G(aJ,bC) */
699
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
701
dpd_buf4_init(&G, CC_GAMMA, 0, 11, 5, 11, 5, 0, "GCiAb");
702
dpd_buf4_scmcopy(&G, CC_GAMMA, "2 Gciab - Gciba", 2);
703
dpd_buf4_sort_axpy(&G, CC_GAMMA, pqsr, 11, 5, "2 Gciab - Gciba", -1);
706
dpd_buf4_init(&G, CC_GAMMA, 0, 11, 5, 11, 5, 0, "2 Gciab - Gciba");
707
dpd_buf4_sort(&G, CC_GAMMA, qpsr, 10, 5, "2 Giabc - Giacb");
710
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 5, 10, 5, 0, "2 Giabc - Giacb");
711
dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
712
dpd_contract442(&Fints, &G, &I, 0, 0, 2.0, 1.0);
713
dpd_buf4_close(&Fints);
718
else if(params.ref == 1) { /** ROHF **/
720
/* I'IJ <-- sum_ABC <IA||BC> G(JA,BC) + 2 sum_AbC <aI|bC> G(aJ,bC) */
721
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
723
dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
724
dpd_buf4_init(&G, CC_GAMMA, 0, 11, 7, 11, 7, 0, "GCIAB");
725
dpd_buf4_sort(&G, CC_TMP0, qprs, 10, 7, "GICAB");
727
dpd_buf4_init(&G, CC_TMP0, 0, 10, 7, 10, 7, 0, "GICAB");
728
dpd_contract442(&Fints, &G, &I, 0, 0, -2.0, 1.0);
730
dpd_buf4_close(&Fints);
732
dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
733
dpd_buf4_init(&G, CC_GAMMA, 0, 11, 5, 11, 5, 0, "GcIaB");
734
dpd_buf4_sort(&G, CC_TMP0, qpsr, 10, 5, "GIcBa");
736
dpd_buf4_init(&G, CC_TMP0, 0, 10, 5, 10, 5, 0, "GIcBa");
737
dpd_contract442(&Fints, &G, &I, 0, 0, 2.0, 1.0);
739
dpd_buf4_close(&Fints);
743
/* I'ij <-- sum_abc <ia||bcC> G(ja,bc) + 2 sum_AbC <Ai|Bc> G(Aj,Bc) */
744
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
746
dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
747
dpd_buf4_init(&G, CC_GAMMA, 0, 11, 7, 11, 7, 0, "Gciab");
748
dpd_buf4_sort(&G, CC_TMP0, qprs, 10, 7, "Gicab");
750
dpd_buf4_init(&G, CC_TMP0, 0, 10, 7, 10, 7, 0, "Gicab");
751
dpd_contract442(&Fints, &G, &I, 0, 0, -2.0, 1.0);
753
dpd_buf4_close(&Fints);
755
dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
756
dpd_buf4_init(&G, CC_GAMMA, 0, 11, 5, 11, 5, 0, "GCiAb");
757
dpd_buf4_sort(&G, CC_TMP0, qpsr, 10, 5, "GiCbA");
759
dpd_buf4_init(&G, CC_TMP0, 0, 10, 5, 10, 5, 0, "GiCbA");
760
dpd_contract442(&Fints, &G, &I, 0, 0, 2.0, 1.0);
762
dpd_buf4_close(&Fints);
767
else if(params.ref == 2) { /** UHF **/
769
/* I'IJ <-- sum_ABC <IA||BC> G(JA,BC) + 2 sum_AbC <aI|bC> G(aJ,bC) */
770
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
772
dpd_buf4_init(&Fints, CC_FINTS, 0, 20, 7, 20, 5, 1, "F <IA|BC>");
773
dpd_buf4_init(&G, CC_GAMMA, 0, 21, 7, 21, 7, 0, "GCIAB");
774
dpd_buf4_sort(&G, CC_TMP0, qprs, 20, 7, "GICAB");
776
dpd_buf4_init(&G, CC_TMP0, 0, 20, 7, 20, 7, 0, "GICAB");
777
dpd_contract442(&Fints, &G, &I, 0, 0, -2.0, 1.0);
779
dpd_buf4_close(&Fints);
781
dpd_buf4_init(&Fints, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
782
dpd_buf4_init(&G, CC_GAMMA, 0, 25, 29, 25, 29, 0, "GcIaB");
783
dpd_buf4_sort(&G, CC_TMP0, qpsr, 24, 28, "GIcBa");
785
dpd_buf4_init(&G, CC_TMP0, 0, 24, 28, 24, 28, 0, "GIcBa");
786
dpd_contract442(&Fints, &G, &I, 0, 0, 2.0, 1.0);
788
dpd_buf4_close(&Fints);
792
/* I'ij <-- sum_abc <ia||bc> G(ja,bc) + 2 sum_AbC <Ai|Bc> G(Aj,Bc) */
793
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
795
dpd_buf4_init(&Fints, CC_FINTS, 0, 30, 17, 30, 15, 1, "F <ia|bc>");
796
dpd_buf4_init(&G, CC_GAMMA, 0, 31, 17, 31, 17, 0, "Gciab");
797
dpd_buf4_sort(&G, CC_TMP0, qprs, 30, 17, "Gicab");
799
dpd_buf4_init(&G, CC_TMP0, 0, 30, 17, 30, 17, 0, "Gicab");
800
dpd_contract442(&Fints, &G, &I, 0, 0, -2.0, 1.0);
802
dpd_buf4_close(&Fints);
804
dpd_buf4_init(&Fints, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
805
dpd_buf4_init(&G, CC_GAMMA, 0, 26, 28, 26, 28, 0, "GCiAb");
806
dpd_buf4_sort(&G, CC_TMP0, qpsr, 27, 29, "GiCbA");
808
dpd_buf4_init(&G, CC_TMP0, 0, 27, 29, 27, 29, 0, "GiCbA");
809
dpd_contract442(&Fints, &G, &I, 0, 0, 2.0, 1.0);
811
dpd_buf4_close(&Fints);
817
if(params.ref == 0) { /** RHF **/
818
/* I'IJ <-- sum_KAB <IK||AB> G(JK,AB) + 2 sum_kAb <Ik|Ab> G(Jk,Ab) */
819
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
821
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 5, 0, 5, 0, "GIjAb");
822
dpd_buf4_scmcopy(&G, CC_GAMMA, "2 Gijab - Gijba", 2);
823
dpd_buf4_sort_axpy(&G, CC_GAMMA, pqsr, 0, 5, "2 Gijab - Gijba", -1);
826
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 5, 0, 5, 0, "2 Gijab - Gijba");
827
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
828
dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
829
dpd_buf4_close(&Dints);
834
else if(params.ref == 1) { /** ROHF **/
836
/* I'IJ <-- sum_KAB <IK||AB> G(JK,AB) + 2 sum_kAb <Ik|Ab> G(Jk,Ab) */
837
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
839
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <ij||ab> (ij,a>b)");
840
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 7, 2, 7, 0, "GIJAB");
841
dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
843
dpd_buf4_close(&Dints);
845
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
846
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 5, 0, 5, 0, "GIjAb");
847
dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
849
dpd_buf4_close(&Dints);
853
/* I'ij <-- sum_kab <ik||ab> G(jk,ab) + 2 sum_KaB <iK|aB> G(jK,aB) */
854
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
856
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <ij||ab> (ij,a>b)");
857
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 7, 2, 7, 0, "Gijab");
858
dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
860
dpd_buf4_close(&Dints);
862
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
863
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 5, 0, 5, 0, "GIjAb");
864
dpd_contract442(&Dints, &G, &I, 1, 1, 2.0, 1.0);
866
dpd_buf4_close(&Dints);
871
else if(params.ref == 2) { /** UHF **/
873
/* I'IJ <-- sum_KAB <IK||AB> G(JK,AB) + 2 sum_kAb <Ik|Ab> G(Jk,Ab) */
874
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
876
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <IJ||AB> (IJ,A>B)");
877
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 7, 2, 7, 0, "GIJAB");
878
dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
880
dpd_buf4_close(&Dints);
882
dpd_buf4_init(&Dints, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
883
dpd_buf4_init(&G, CC_GAMMA, 0, 22, 28, 22, 28, 0, "GIjAb");
884
dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
886
dpd_buf4_close(&Dints);
890
/* I'ij <-- sum_kab <ik||ab> G(jk,ab) + 2 sum_KaB <iK|aB> G(jK,aB) */
891
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
893
dpd_buf4_init(&Dints, CC_DINTS, 0, 10, 17, 10, 17, 0, "D <ij||ab> (ij,a>b)");
894
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 17, 12, 17, 0, "Gijab");
895
dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
897
dpd_buf4_close(&Dints);
899
dpd_buf4_init(&Dints, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
900
dpd_buf4_init(&G, CC_GAMMA, 0, 22, 28, 22, 28, 0, "GIjAb");
901
dpd_contract442(&Dints, &G, &I, 1, 1, 2.0, 1.0);
903
dpd_buf4_close(&Dints);
909
if(params.ref == 0) { /** RHF **/
910
/* I'IJ <-- 2 sum_AKB <IA||KB> G(JA,KB) + 2 sum_aKb <Ia|Kb> G(Ja,Kb) -
911
2 sum_akB <Ik|Ba> GJakB(Jk,Ba) */
912
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
914
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
915
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIBJA");
916
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
918
dpd_buf4_close(&Cints);
920
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
921
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIbJa");
922
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
924
dpd_buf4_close(&Cints);
926
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
927
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIbjA");
928
dpd_buf4_sort(&G, CC_TMP0, prsq, 0, 5, "GIbjA (Ij,Ab)");
930
dpd_buf4_init(&G, CC_TMP0, 0, 0, 5, 0, 5, 0, "GIbjA (Ij,Ab)");
931
dpd_contract442(&Dints, &G, &I, 0, 0, -2.0, 1.0);
933
dpd_buf4_close(&Dints);
937
else if(params.ref == 1) { /** ROHF **/
939
/* I'IJ <-- 2 sum_AKB <IA||KB> G(JA,KB) + 2 sum_aKb <Ia|Kb> G(Ja,Kb) -
940
2 sum_akB <Ik|Ba> GJakB(Jk,Ba) */
941
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
943
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
944
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIBJA");
945
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
947
dpd_buf4_close(&Cints);
949
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
950
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIbJa");
951
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
953
dpd_buf4_close(&Cints);
955
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
956
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIbjA");
957
dpd_buf4_sort(&G, CC_TMP0, prsq, 0, 5, "GIbjA (Ij,Ab)");
959
dpd_buf4_init(&G, CC_TMP0, 0, 0, 5, 0, 5, 0, "GIbjA (Ij,Ab)");
960
dpd_contract442(&Dints, &G, &I, 0, 0, -2.0, 1.0);
962
dpd_buf4_close(&Dints);
966
/* I'ij <-- 2 sum_akb <ia||kb> G(ja,kb) + 2 sum_AkB <iA|kB> G(jA,kB) +
967
2 sum_AKb <iK|bA> GjAKb(jK,bA) */
968
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
970
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
971
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "Gibja");
972
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
974
dpd_buf4_close(&Cints);
976
dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
977
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GiBjA");
978
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
980
dpd_buf4_close(&Cints);
982
dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
983
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GiBJa");
984
dpd_buf4_sort(&G, CC_TMP0, prsq, 0, 5, "GiBJa (iJ,aB)");
986
dpd_buf4_init(&G, CC_TMP0, 0, 0, 5, 0, 5, 0, "GiBJa (iJ,aB)");
987
dpd_contract442(&Dints, &G, &I, 0, 0, -2.0, 1.0);
989
dpd_buf4_close(&Dints);
994
else if(params.ref == 2) { /** UHF **/
996
/* I'IJ <-- 2 sum_AKB <IA||KB> G(JA,KB) + 2 sum_aKb <Ia|Kb> G(Ja,Kb) -
997
2 sum_akB <Ik|Ba> GJakB(Jk,Ba) */
998
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
1000
dpd_buf4_init(&Cints, CC_CINTS, 0, 20, 20, 20, 20, 0, "C <IA||JB>");
1001
dpd_buf4_init(&G, CC_GAMMA, 0, 20, 20, 20, 20, 0, "GIBJA");
1002
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
1004
dpd_buf4_close(&Cints);
1006
dpd_buf4_init(&Cints, CC_CINTS, 0, 24, 24, 24, 24, 0, "C <Ia|Jb>");
1007
dpd_buf4_init(&G, CC_GAMMA, 0, 24, 24, 24, 24, 0, "GIbJa");
1008
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
1010
dpd_buf4_close(&Cints);
1012
dpd_buf4_init(&Dints, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
1013
dpd_buf4_init(&G, CC_GAMMA, 0, 24, 27, 24, 27, 0, "GIbjA");
1014
dpd_buf4_sort(&G, CC_TMP0, prsq, 22, 28, "GIbjA (Ij,Ab)");
1016
dpd_buf4_init(&G, CC_TMP0, 0, 22, 28, 22, 28, 0, "GIbjA (Ij,Ab)");
1017
dpd_contract442(&Dints, &G, &I, 0, 0, -2.0, 1.0);
1019
dpd_buf4_close(&Dints);
1021
dpd_file2_close(&I);
1023
/* I'ij <-- 2 sum_akb <ia||kb> G(ja,kb) + 2 sum_AkB <iA|kB> G(jA,kB) +
1024
2 sum_AKb <iK|bA> GjAKb(jK,bA) */
1025
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
1027
dpd_buf4_init(&Cints, CC_CINTS, 0, 30, 30, 30, 30, 0, "C <ia||jb>");
1028
dpd_buf4_init(&G, CC_GAMMA, 0, 30, 30, 30, 30, 0, "Gibja");
1029
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
1031
dpd_buf4_close(&Cints);
1033
dpd_buf4_init(&Cints, CC_CINTS, 0, 27, 27, 27, 27, 0, "C <iA|jB>");
1034
dpd_buf4_init(&G, CC_GAMMA, 0, 27, 27, 27, 27, 0, "GiBjA");
1035
dpd_contract442(&Cints, &G, &I, 0, 0, 2.0, 1.0);
1037
dpd_buf4_close(&Cints);
1039
dpd_buf4_init(&Dints, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
1040
dpd_buf4_init(&G, CC_GAMMA, 0, 27, 24, 27, 24, 0, "GiBJa");
1041
dpd_buf4_sort(&G, CC_TMP0, prsq, 23, 29, "GiBJa (iJ,aB)");
1043
dpd_buf4_init(&G, CC_TMP0, 0, 23, 29, 23, 29, 0, "GiBJa (iJ,aB)");
1044
dpd_contract442(&Dints, &G, &I, 0, 0, -2.0, 1.0);
1046
dpd_buf4_close(&Dints);
1048
dpd_file2_close(&I);
1052
if(params.ref == 0) { /** RHF **/
1053
/* I'IJ <-- 2 sum_KLA <IK||LA> G(JK,LA) + 2 sum_kLa <Ik|La> G(Jk,La)
1054
+ 2 sum_kAl <kI|lA> G(kJ,lA) */
1055
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
1057
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
1058
dpd_buf4_scmcopy(&G, CC_GAMMA, "2 Gijka - Gjika", 2);
1059
dpd_buf4_sort_axpy(&G, CC_GAMMA, qprs, 0, 10, "2 Gijka - Gjika", -1);
1062
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "2 Gijka - Gjika");
1063
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1064
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1065
dpd_contract442(&Eints, &G, &I, 1, 1, 2.0, 1.0);
1066
dpd_buf4_close(&Eints);
1069
dpd_file2_close(&I);
1071
else if(params.ref == 1) { /** ROHF **/
1073
/* I'IJ <-- 2 sum_KLA <IK||LA> G(JK,LA) + 2 sum_kLa <Ik|La> G(Jk,La)
1074
+ 2 sum_kAl <kI|lA> G(kJ,lA) */
1075
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
1077
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
1078
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 2, 10, 0, "GIJKA");
1079
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1081
dpd_buf4_close(&Eints);
1083
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1084
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
1085
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1087
dpd_buf4_close(&Eints);
1089
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1090
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GiJkA");
1091
dpd_contract442(&Eints, &G, &I, 1, 1, 2.0, 1.0);
1093
dpd_buf4_close(&Eints);
1095
dpd_file2_close(&I);
1097
/* I'ij <-- 2 sum_kla <ik||la> G(jk,la) + 2 sum_KlA <iK|lA> G(jK,lA)
1098
+ 2 sum_KaL <Ki|La> G(Kj,La) */
1099
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
1101
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
1102
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 2, 10, 0, "Gijka");
1103
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1105
dpd_buf4_close(&Eints);
1107
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1108
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GiJkA");
1109
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1111
dpd_buf4_close(&Eints);
1113
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1114
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
1115
dpd_contract442(&Eints, &G, &I, 1, 1, 2.0, 1.0);
1117
dpd_buf4_close(&Eints);
1119
dpd_file2_close(&I);
1121
else if(params.ref == 2) { /** UHF **/
1123
/* I'IJ <-- 2 sum_KLA <IK||LA> G(JK,LA) + 2 sum_kLa <Ik|La> G(Jk,La)
1124
+ 2 sum_kAl <kI|lA> G(kJ,lA) */
1125
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
1127
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 20, 2, 20, 0, "E <IJ||KA> (I>J,KA)");
1128
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 20, 2, 20, 0, "GIJKA");
1129
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1131
dpd_buf4_close(&Eints);
1133
dpd_buf4_init(&Eints, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
1134
dpd_buf4_init(&G, CC_GAMMA, 0, 22, 24, 22, 24, 0, "GIjKa");
1135
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1137
dpd_buf4_close(&Eints);
1139
dpd_buf4_init(&Eints, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
1140
dpd_buf4_init(&G, CC_GAMMA, 0, 23, 27, 23, 27, 0, "GiJkA");
1141
dpd_contract442(&Eints, &G, &I, 1, 1, 2.0, 1.0);
1143
dpd_buf4_close(&Eints);
1145
dpd_file2_close(&I);
1147
/* I'ij <-- 2 sum_kla <ik||la> G(jk,la) + 2 sum_KlA <iK|lA> G(jK,lA)
1148
+ 2 sum_KaL <Ki|La> G(Kj,La) */
1149
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
1151
dpd_buf4_init(&Eints, CC_EINTS, 0, 10, 30, 12, 30, 0, "E <ij||ka> (i>j,ka)");
1152
dpd_buf4_init(&G, CC_GAMMA, 0, 10, 30, 12, 30, 0, "Gijka");
1153
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1155
dpd_buf4_close(&Eints);
1157
dpd_buf4_init(&Eints, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
1158
dpd_buf4_init(&G, CC_GAMMA, 0, 23, 27, 23, 27, 0, "GiJkA");
1159
dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
1161
dpd_buf4_close(&Eints);
1163
dpd_buf4_init(&Eints, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
1164
dpd_buf4_init(&G, CC_GAMMA, 0, 22, 24, 22, 24, 0, "GIjKa");
1165
dpd_contract442(&Eints, &G, &I, 1, 1, 2.0, 1.0);
1167
dpd_buf4_close(&Eints);
1169
dpd_file2_close(&I);
1173
if(params.ref == 0) { /** RHF **/
1174
/* I'IJ <-- 2 sum_AKL <K>L||IA> G(K>L,JA) + 2 sum_aKl <Kl|Ia> G(Kl,Ja) */
1175
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
1177
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
1178
dpd_buf4_scmcopy(&G, CC_GAMMA, "2 Gijka - Gjika", 2);
1179
dpd_buf4_sort_axpy(&G, CC_GAMMA, qprs, 0, 10, "2 Gijka - Gjika", -1);
1182
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "2 Gijka - Gjika");
1183
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1184
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1185
dpd_buf4_close(&Eints);
1188
dpd_file2_close(&I);
1190
else if(params.ref == 1) { /** ROHF **/
1192
/* I'IJ <-- 2 sum_AKL <K>L||IA> G(K>L,JA) + 2 sum_aKl <Kl|Ia> G(Kl,Ja) */
1193
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
1195
dpd_buf4_init(&Eints, CC_EINTS, 0, 2, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
1196
dpd_buf4_init(&G, CC_GAMMA, 0, 2, 10, 2, 10, 0, "GIJKA");
1197
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1199
dpd_buf4_close(&Eints);
1201
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1202
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
1203
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1205
dpd_buf4_close(&Eints);
1207
dpd_file2_close(&I);
1209
/* I'ij <-- 2 sum_akl <k>l||ia> G(k>l,ja) + 2 sum_AkL <kL|iA> G(kL,jA) */
1210
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'ij");
1212
dpd_buf4_init(&Eints, CC_EINTS, 0, 2, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
1213
dpd_buf4_init(&G, CC_GAMMA, 0, 2, 10, 2, 10, 0, "Gijka");
1214
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1216
dpd_buf4_close(&Eints);
1218
dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
1219
dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GiJkA");
1220
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1222
dpd_buf4_close(&Eints);
1224
dpd_file2_close(&I);
1227
else if(params.ref == 2) { /** UHF **/
1229
/* I'IJ <-- 2 sum_AKL <K>L||IA> G(K>L,JA) + 2 sum_aKl <Kl|Ia> G(Kl,Ja) */
1230
dpd_file2_init(&I, CC_OEI, 0, 0, 0, "I'IJ");
1232
dpd_buf4_init(&Eints, CC_EINTS, 0, 2, 20, 2, 20, 0, "E <IJ||KA> (I>J,KA)");
1233
dpd_buf4_init(&G, CC_GAMMA, 0, 2, 20, 2, 20, 0, "GIJKA");
1234
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1236
dpd_buf4_close(&Eints);
1238
dpd_buf4_init(&Eints, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
1239
dpd_buf4_init(&G, CC_GAMMA, 0, 22, 24, 22, 24, 0, "GIjKa");
1240
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1242
dpd_buf4_close(&Eints);
1244
dpd_file2_close(&I);
1246
/* I'ij <-- 2 sum_akl <k>l||ia> G(k>l,ja) + 2 sum_AkL <kL|iA> G(kL,jA) */
1247
dpd_file2_init(&I, CC_OEI, 0, 2, 2, "I'ij");
1249
dpd_buf4_init(&Eints, CC_EINTS, 0, 12, 30, 12, 30, 0, "E <ij||ka> (i>j,ka)");
1250
dpd_buf4_init(&G, CC_GAMMA, 0, 12, 30, 12, 30, 0, "Gijka");
1251
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1253
dpd_buf4_close(&Eints);
1255
dpd_buf4_init(&Eints, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
1256
dpd_buf4_init(&G, CC_GAMMA, 0, 23, 27, 23, 27, 0, "GiJkA");
1257
dpd_contract442(&Eints, &G, &I, 2, 2, 2.0, 1.0);
1259
dpd_buf4_close(&Eints);
1261
dpd_file2_close(&I);
1266
}} // namespace psi::ccdensity