2
4
#include <libdpd/dpd.h>
6
void L1_build(int L_irr, int root_L_irr) {
9
void local_filter_T1(dpdfile2 *);
11
void L1_build(struct L_Params L_params) {
7
12
dpdfile2 newLIA, newLia, LIA, Lia;
8
13
dpdfile2 dIA, dia, Fme, FME;
9
14
dpdfile2 LFaet2, LFAEt2, LFmit2, LFMIt2;
10
dpdfile2 GMI, Gmi, Gae;
15
dpdfile2 GMI, Gmi, Gae, XIA, Xia;
12
17
dpdbuf4 WMBEJ, Wmbej, WMbEj, WmBeJ;
13
18
dpdbuf4 WMBIJ, Wmbij, WMbIj, WmBiJ;
14
19
dpdbuf4 LIJAB, Lijab, LIjAb, LiJaB, L2;
15
20
dpdbuf4 WMNIE, Wmnie, WMnIe, WmNiE;
16
21
dpdbuf4 WAMEF, Wamef, WAmEf, WaMeF, W;
24
int Gim, Gi, Gm, Ga, Gam, nrows, ncols, A, a, am;
25
int Gei, ei, e, i, Gef, Ge, Gf, E, I, af, fa, f;
28
L_irr = L_params.irrep;
18
/* ground state homogeneous term is Fme */
20
if(params.ref == 0 || params.ref == 1) {
30
/* ground state inhomogeneous term is Fme */
31
if (L_params.ground) {
33
dpd_file2_init(&FME,CC_OEI, 0, 0, 1, "FME");
34
dpd_file2_copy(&FME, CC_LAMBDA, "New LIA");
35
dpd_file2_close(&FME);
37
else if(params.ref == 1) {
21
38
dpd_file2_init(&Fme,CC_OEI, 0, 0, 1, "Fme");
22
39
dpd_file2_init(&FME,CC_OEI, 0, 0, 1, "FME");
23
dpd_file2_copy(&Fme, CC_OEI, "New Lia");
24
dpd_file2_copy(&FME, CC_OEI, "New LIA");
40
dpd_file2_copy(&Fme, CC_LAMBDA, "New Lia");
41
dpd_file2_copy(&FME, CC_LAMBDA, "New LIA");
25
42
dpd_file2_close(&Fme);
26
43
dpd_file2_close(&FME);
28
45
else if(params.ref == 2) {
29
46
dpd_file2_init(&Fme,CC_OEI, 0, 2, 3, "Fme");
30
47
dpd_file2_init(&FME,CC_OEI, 0, 0, 1, "FME");
31
dpd_file2_copy(&Fme, CC_OEI, "New Lia");
32
dpd_file2_copy(&FME, CC_OEI, "New LIA");
48
dpd_file2_copy(&Fme, CC_LAMBDA, "New Lia");
49
dpd_file2_copy(&FME, CC_LAMBDA, "New LIA");
33
50
dpd_file2_close(&Fme);
34
51
dpd_file2_close(&FME);
37
/* excited state - no homogenous term, first term is E*L */
39
dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
40
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
54
/* excited state - no inhomogenous term, first term is -energy*L*/
55
else if (!params.zeta) {
41
56
if (params.ref == 0 || params.ref == 1) {
42
dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "Lia");
43
dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
57
dpd_file2_init(&LIA, CC_LAMBDA, L_irr, 0, 1, "LIA");
58
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
59
dpd_file2_init(&Lia, CC_LAMBDA, L_irr, 0, 1, "Lia");
60
dpd_file2_init(&newLia, CC_LAMBDA, L_irr, 0, 1, "New Lia");
61
dpd_file2_axpy(&LIA, &newLIA, -1.0 * L_params.cceom_energy,0.0);
62
dpd_file2_axpy(&Lia, &newLia, -1.0 * L_params.cceom_energy,0.0);
63
dpd_file2_close(&LIA);
64
dpd_file2_close(&newLIA);
65
dpd_file2_close(&Lia);
66
dpd_file2_close(&newLia);
45
68
else if (params.ref == 2) {
46
dpd_file2_init(&Lia, CC_OEI, L_irr, 2, 3, "Lia");
47
dpd_file2_init(&newLia, CC_OEI, L_irr, 2, 3, "New Lia");
49
dpd_file2_axpy(&LIA, &newLIA, -1.0 * params.cceom_energy[L_irr][root_L_irr],0.0);
50
dpd_file2_axpy(&Lia, &newLia, -1.0 * params.cceom_energy[L_irr][root_L_irr],0.0);
51
dpd_file2_close(&LIA);
52
dpd_file2_close(&newLIA);
53
dpd_file2_close(&Lia);
54
dpd_file2_close(&newLia);
69
/* do nothing - TDC did not change to increments for the UHF case */
72
/* solving zeta equations; inhomogeneous term is Xi */
74
if (params.ref == 0) {
75
dpd_file2_init(&XIA, EOM_XI, 0, 0, 1, "XIA");
76
dpd_file2_copy(&XIA, CC_LAMBDA, "New LIA");
77
dpd_file2_close(&XIA);
79
else if (params.ref == 1) {
80
dpd_file2_init(&XIA, EOM_XI, 0, 0, 1, "XIA");
81
dpd_file2_init(&Xia, EOM_XI, 0, 0, 1, "Xia");
82
dpd_file2_copy(&XIA, CC_LAMBDA, "New LIA");
83
dpd_file2_copy(&Xia, CC_LAMBDA, "New Lia");
84
dpd_file2_close(&XIA);
85
dpd_file2_close(&Xia);
87
else if(params.ref == 2) {
88
dpd_file2_init(&XIA, EOM_XI, 0, 0, 1, "XIA");
89
dpd_file2_init(&Xia, EOM_XI, 0, 2, 3, "Xia");
90
dpd_file2_copy(&XIA, CC_LAMBDA, "New LIA");
91
dpd_file2_copy(&Xia, CC_LAMBDA, "New Lia");
92
dpd_file2_close(&XIA);
93
dpd_file2_close(&Xia);
57
97
if(params.ref == 0 || params.ref == 1) {
58
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
59
dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
98
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
99
dpd_file2_init(&newLia, CC_LAMBDA, L_irr, 0, 1, "New Lia");
61
101
else if(params.ref == 2) {
62
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
63
dpd_file2_init(&newLia, CC_OEI, L_irr, 2, 3, "New Lia");
66
/* L0=0 for excited states, so no inhomogeneous Fia and Wijab terms */
67
/* make sure these are not nonzero from last iteration */
70
dpd_file2_scm(&newLIA, 0.0);
71
dpd_file2_scm(&newLia, 0.0);
75
if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
77
/* L1 RHS += Lie*Fea */
78
dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
79
dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "Lia");
102
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
103
dpd_file2_init(&newLia, CC_LAMBDA, L_irr, 2, 3, "New Lia");
106
if(params.ref == 0) { /** RHF **/
107
dpd_file2_init(&LIA, CC_LAMBDA, L_irr, 0, 1, "LIA");
109
/* L1 RHS += Lie*Fea */
110
dpd_file2_init(&LFAEt2, CC_OEI, 0, 1, 1, "FAE");
111
dpd_contract222(&LIA,&LFAEt2,&newLIA, 0, 1, 1.0, 1.0);
112
dpd_file2_close(&LFAEt2);
114
/* L1 RHS += -Lma*Fim */
115
dpd_file2_init(&LFMIt2,CC_OEI, 0, 0, 0, "FMI");
116
dpd_contract222(&LFMIt2,&LIA,&newLIA, 0, 1, -1.0, 1.0);
117
dpd_file2_close(&LFMIt2);
119
/* L1 RHS += Lme*Wieam */
120
dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "2 W(ME,jb) + W(Me,Jb)");
121
dpd_contract422(&W, &LIA, &newLIA, 0, 0, 1.0, 1.0);
124
dpd_file2_close(&LIA);
126
else if(params.ref == 1) { /** ROHF **/
128
/* L1 RHS += Lie*Fea */
129
dpd_file2_init(&LIA, CC_LAMBDA, L_irr, 0, 1, "LIA");
130
dpd_file2_init(&Lia, CC_LAMBDA, L_irr, 0, 1, "Lia");
81
132
dpd_file2_init(&LFAEt2, CC_OEI, 0, 1, 1, "FAE");
82
133
dpd_file2_init(&LFaet2, CC_OEI, 0, 1, 1, "Fae");
158
209
/* L1 RHS += 1/2 Limef*Wefam */
159
if(params.ref == 0 || params.ref == 1) {
210
/* L(i,a) += [ 2 L(im,ef) - L(im,fe) ] * W(am,ef) */
211
/* Note: W(am,ef) is really Wabei (ei,ab) */
212
if(params.ref == 0) { /** RHF **/
214
dpd_buf4_init(&W, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAbEi (Ei,Ab)");
215
dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "2 LIjAb - LIjBa");
216
/* dpd_contract442(&L2, &W, &newLIA, 0, 0, 1.0, 1.0); */
217
dpd_file2_mat_init(&newLIA);
218
dpd_file2_mat_rd(&newLIA);
219
for(Gam=0; Gam < moinfo.nirreps; Gam++) {
220
Gef = Gam; /* W is totally symmetric */
222
dpd_buf4_mat_irrep_init(&L2, Gim);
223
dpd_buf4_mat_irrep_rd(&L2, Gim);
224
dpd_buf4_mat_irrep_shift13(&L2, Gim);
226
for(Gi=0; Gi < moinfo.nirreps; Gi++) {
229
W.matrix[Gam] = dpd_block_matrix(moinfo.occpi[Gm],W.params->coltot[Gam]);
231
nrows = moinfo.occpi[Gi];
232
ncols = moinfo.occpi[Gm] * W.params->coltot[Gam];
234
for(A=0; A < moinfo.virtpi[Ga]; A++) {
235
a = moinfo.vir_off[Ga] + A;
236
am = W.row_offset[Gam][a];
238
dpd_buf4_mat_irrep_rd_block(&W, Gam, am, moinfo.occpi[Gm]);
240
if(nrows && ncols && moinfo.virtpi[Ga])
241
C_DGEMV('n',nrows,ncols,1,L2.shift.matrix[Gim][Gi][0],ncols,W.matrix[Gam][0],1,
242
1, &(newLIA.matrix[Gi][0][A]), moinfo.virtpi[Ga]);
246
dpd_free_block(W.matrix[Gam], moinfo.occpi[Gm], W.params->coltot[Gam]);
248
dpd_buf4_mat_irrep_close(&L2, Gim);
250
dpd_file2_mat_wrt(&newLIA);
251
dpd_file2_mat_close(&newLIA);
256
else if(params.ref == 1) { /** ROHF **/
161
258
dpd_buf4_init(&W, CC_HBAR, 0, 11, 7, 11, 7, 0, "WEIAB");
162
259
dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 7, 2, 7, 0, "LIJAB");
264
368
/* L1 RHS += -Gef*Weifa */
265
if(params.ref == 0 || params.ref == 1) {
267
dpd_file2_init(&GAE, CC_OEI, L_irr, 1, 1, "GAE");
268
dpd_file2_init(&Gae, CC_OEI, L_irr, 1, 1, "Gae");
270
dpd_buf4_init(&WAMEF, CC_HBAR, 0, 10, 5, 10, 7, 0, "WAMEF");
271
dpd_dot23(&GAE,&WAMEF,&newLIA, 0, 0, -1.0, 1.0);
369
if(params.ref == 0) {
371
/* dpd_file2_init(&GAE, CC_LAMBDA, L_irr, 1, 1, "GAE"); */
372
/* dpd_buf4_init(&WaMeF, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf 2(Am,Ef) - (Am,fE)"); */
373
/* dpd_dot13(&GAE,&WaMeF,&newLIA, 0, 0, -1.0, 1.0); */
374
/* dpd_buf4_close(&WaMeF); */
375
/* dpd_file2_close(&GAE); */
377
/* Above code replaced to remove disk-space and memory bottlenecks 7/26/05, -TDC */
378
dpd_file2_init(&GAE, CC_LAMBDA, L_irr, 1, 1, "GAE");
379
dpd_file2_mat_init(&GAE);
380
dpd_file2_mat_rd(&GAE);
381
dpd_file2_mat_init(&newLIA);
382
dpd_file2_mat_rd(&newLIA);
383
dpd_buf4_init(&W, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
384
for(Gei=0; Gei < moinfo.nirreps; Gei++) {
385
dpd_buf4_mat_irrep_row_init(&W, Gei);
386
X = init_array(W.params->coltot[Gei]);
387
for(ei=0; ei < W.params->rowtot[Gei]; ei++) {
388
dpd_buf4_mat_irrep_row_rd(&W, Gei, ei);
389
e = W.params->roworb[Gei][ei][0];
390
i = W.params->roworb[Gei][ei][1];
391
Ge = W.params->psym[e];
395
E = e - moinfo.vir_off[Ge];
396
I = i - moinfo.occ_off[Gi];
398
zero_arr(X,W.params->coltot[Gei]);
400
for(fa=0; fa < W.params->coltot[Gei]; fa++) {
401
f = W.params->colorb[Gei][fa][0];
402
a = W.params->colorb[Gei][fa][1];
403
af = W.params->colidx[a][f];
404
X[fa] = 2.0 * W.matrix[Gei][0][fa] - W.matrix[Gei][0][af];
407
nrows = moinfo.virtpi[Gf];
408
ncols = moinfo.virtpi[Ga];
410
C_DGEMV('t',nrows,ncols,-1,&X[W.col_offset[Gei][Gf]],ncols,
411
GAE.matrix[Ge][E],1,1,newLIA.matrix[Gi][I],1);
414
dpd_buf4_mat_irrep_row_close(&W, Gei);
418
dpd_file2_mat_wrt(&newLIA);
419
dpd_file2_mat_close(&newLIA);
420
dpd_file2_mat_close(&GAE);
421
dpd_file2_close(&GAE);
423
else if(params.ref == 1) {
425
dpd_file2_init(&GAE, CC_LAMBDA, L_irr, 1, 1, "GAE");
426
dpd_file2_init(&Gae, CC_LAMBDA, L_irr, 1, 1, "Gae");
428
dpd_buf4_init(&WAMEF, CC_HBAR, 0, 11, 5, 11, 7, 0, "WAMEF");
429
dpd_dot13(&GAE,&WAMEF,&newLIA, 0, 0, -1.0, 1.0);
272
430
dpd_buf4_close(&WAMEF);
274
dpd_buf4_init(&WaMeF, CC_HBAR, 0, 10, 5, 10, 5, 0, "WaMeF");
275
dpd_dot23(&Gae,&WaMeF,&newLIA, 0, 0, -1.0, 1.0);
432
dpd_buf4_init(&WaMeF, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
433
dpd_dot13(&Gae,&WaMeF,&newLIA, 0, 0, -1.0, 1.0);
276
434
dpd_buf4_close(&WaMeF);
278
dpd_buf4_init(&Wamef, CC_HBAR, 0, 10, 5, 10, 7, 0, "Wamef");
279
dpd_dot23(&Gae,&Wamef,&newLia, 0, 0, -1.0, 1.0);
436
dpd_buf4_init(&Wamef, CC_HBAR, 0, 11, 5, 11, 7, 0, "Wamef");
437
dpd_dot13(&Gae,&Wamef,&newLia, 0, 0, -1.0, 1.0);
280
438
dpd_buf4_close(&Wamef);
282
dpd_buf4_init(&WAmEf, CC_HBAR, 0, 10, 5, 10, 5, 0, "WAmEf");
283
dpd_dot23(&GAE,&WAmEf,&newLia, 0, 0, -1.0, 1.0);
440
dpd_buf4_init(&WAmEf, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
441
dpd_dot13(&GAE,&WAmEf,&newLia, 0, 0, -1.0, 1.0);
284
442
dpd_buf4_close(&WAmEf);
445
dpd_buf4_init(&WAMEF, CC_HBAR, 0, 10, 5, 10, 7, 0, "WAMEF");
446
dpd_dot23(&GAE,&WAMEF,&newLIA, 0, 0, -1.0, 1.0);
447
dpd_buf4_close(&WAMEF);
448
dpd_buf4_init(&WaMeF, CC_HBAR, 0, 10, 5, 10, 5, 0, "WaMeF");
449
dpd_dot23(&Gae,&WaMeF,&newLIA, 0, 0, -1.0, 1.0);
450
dpd_buf4_close(&WaMeF);
451
dpd_buf4_init(&Wamef, CC_HBAR, 0, 10, 5, 10, 7, 0, "Wamef");
452
dpd_dot23(&Gae,&Wamef,&newLia, 0, 0, -1.0, 1.0);
453
dpd_buf4_close(&Wamef);
454
dpd_buf4_init(&WAmEf, CC_HBAR, 0, 10, 5, 10, 5, 0, "WAmEf");
455
dpd_dot23(&GAE,&WAmEf,&newLia, 0, 0, -1.0, 1.0);
456
dpd_buf4_close(&WAmEf);
286
459
dpd_file2_close(&Gae);
287
460
dpd_file2_close(&GAE);
289
462
else if(params.ref == 2) {
291
dpd_file2_init(&GAE, CC_OEI, L_irr, 1, 1, "GAE");
292
dpd_file2_init(&Gae, CC_OEI, L_irr, 3, 3, "Gae");
464
dpd_file2_init(&GAE, CC_LAMBDA, L_irr, 1, 1, "GAE");
465
dpd_file2_init(&Gae, CC_LAMBDA, L_irr, 3, 3, "Gae");
294
467
dpd_buf4_init(&W, CC_HBAR, 0, 21, 5, 21, 7, 0, "WAMEF");
295
468
dpd_dot13(&GAE,&W,&newLIA, 0, 0, -1, 1);
315
488
/* L1 RHS += -Gmn*Wmina */
316
if(params.ref == 0 || params.ref == 1) {
318
dpd_file2_init(&GMI, CC_OEI, L_irr, 0, 0, "GMI");
319
dpd_file2_init(&Gmi, CC_OEI, L_irr, 0, 0, "Gmi");
321
dpd_buf4_init(&WMNIE, CC_HBAR, 0, 0, 11, 2, 11, 0, "WMNIE");
489
if(params.ref == 0) {
490
dpd_file2_init(&GMI, CC_LAMBDA, L_irr, 0, 0, "GMI");
492
dpd_buf4_init(&WmNiE, CC_HBAR, 0, 0, 11, 0, 11, 0, "2WMnIe - WnMIe (Mn,eI)");
493
dpd_dot14(&GMI, &WmNiE, &newLIA, 0, 0, -1.0, 1.0);
494
dpd_buf4_close(&WmNiE);
496
dpd_file2_close(&GMI);
498
else if(params.ref == 1) {
500
dpd_file2_init(&GMI, CC_LAMBDA, L_irr, 0, 0, "GMI");
501
dpd_file2_init(&Gmi, CC_LAMBDA, L_irr, 0, 0, "Gmi");
503
dpd_buf4_init(&WMNIE, CC_HBAR, 0, 0, 11, 2, 11, 0, "WMNIE (M>N,EI)");
322
504
dpd_dot14(&GMI, &WMNIE, &newLIA, 0, 0, -1.0, 1.0);
323
505
dpd_buf4_close(&WMNIE);
325
dpd_buf4_init(&WmNiE, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE");
507
dpd_buf4_init(&WmNiE, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE (mN,Ei)");
326
508
dpd_dot14(&Gmi, &WmNiE, &newLIA, 0, 0, -1.0, 1.0);
327
509
dpd_buf4_close(&WmNiE);
329
dpd_buf4_init(&Wmnie, CC_HBAR, 0, 0, 11, 2, 11, 0, "Wmnie");
511
dpd_buf4_init(&Wmnie, CC_HBAR, 0, 0, 11, 2, 11, 0, "Wmnie (m>n,ei)");
330
512
dpd_dot14(&Gmi, &Wmnie, &newLia, 0, 0, -1.0, 1.0);
331
513
dpd_buf4_close(&Wmnie);
333
dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe");
515
dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe (Mn,eI)");
334
516
dpd_dot14(&GMI, &WMnIe, &newLia, 0, 0, -1.0, 1.0);
335
517
dpd_buf4_close(&WMnIe);
341
523
else if(params.ref == 2) {
343
dpd_file2_init(&GMI, CC_OEI, L_irr, 0, 0, "GMI");
344
dpd_file2_init(&Gmi, CC_OEI, L_irr, 2, 2, "Gmi");
525
dpd_file2_init(&GMI, CC_LAMBDA, L_irr, 0, 0, "GMI");
526
dpd_file2_init(&Gmi, CC_LAMBDA, L_irr, 2, 2, "Gmi");
346
dpd_buf4_init(&W, CC_HBAR, 0, 0, 21, 2, 21, 0, "WMNIE");
528
dpd_buf4_init(&W, CC_HBAR, 0, 0, 21, 2, 21, 0, "WMNIE (M>N,EI)");
347
529
dpd_dot14(&GMI, &W, &newLIA, 0, 0, -1, 1);
348
530
dpd_buf4_close(&W);
350
dpd_buf4_init(&W, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE");
532
dpd_buf4_init(&W, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE (mN,Ei)");
351
533
dpd_dot14(&Gmi, &W, &newLIA, 0, 0, -1, 1);
352
534
dpd_buf4_close(&W);
354
dpd_buf4_init(&W, CC_HBAR, 0, 10, 31, 12, 31, 0, "Wmnie");
536
dpd_buf4_init(&W, CC_HBAR, 0, 10, 31, 12, 31, 0, "Wmnie (m>n,ei)");
355
537
dpd_dot14(&Gmi, &W, &newLia, 0, 0, -1, 1);
356
538
dpd_buf4_close(&W);
358
dpd_buf4_init(&W, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe");
540
dpd_buf4_init(&W, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe (Mn,eI)");
359
541
dpd_dot14(&GMI, &W, &newLia, 0, 0, -1, 1);
360
542
dpd_buf4_close(&W);
363
545
dpd_file2_close(&GMI);
549
if(!strcmp(params.wfn, "CC3")) {
550
if(params.ref == 0) {
552
dpd_file2_init(&XLD, CC3_MISC, 0, 0, 1, "CC3 XLD");
553
dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D 2<ij|ab> - <ij|ba>");
554
dpd_dot24(&XLD, &D, &newLIA, 0, 0, 1, 1);
556
dpd_file2_close(&XLD);
558
dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 5, 2, 7, 0, "LIJAB");
559
dpd_buf4_init(&Z, CC3_MISC, 0, 10, 0, 10, 0, 0, "CC3 ZIFLN");
560
dpd_contract442(&Z, &L2, &newLIA, 0, 2, -0.5, 1);
564
dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "LIjAb");
565
dpd_buf4_init(&Z, CC3_MISC, 0, 10, 0, 10, 0, 0, "CC3 ZIfLn");
566
dpd_contract442(&Z, &L2, &newLIA, 0, 2, -1, 1);
570
dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 5, 2, 7, 0, "LIJAB");
571
dpd_buf4_init(&Z, CC3_MISC, 0, 11, 5, 11, 5, 0, "CC3 ZDFAN (AN,DF)");
572
dpd_contract442(&L2, &Z, &newLIA, 0, 0, 0.5, 1);
576
dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "LIjAb");
577
dpd_buf4_init(&Z, CC3_MISC, 0, 11, 5, 11, 5, 0, "CC3 ZDfAn (An,Df)");
578
dpd_contract442(&L2, &Z, &newLIA, 0, 0, 1.0, 1);
366
584
dpd_file2_close(&newLIA);
367
585
dpd_file2_close(&newLia);
369
587
/* newLia * Dia */
370
588
if(params.ref == 0) { /** RHF **/
372
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
373
dpd_file2_copy(&newLIA, CC_OEI, "New LIA Increment");
590
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
591
dpd_file2_copy(&newLIA, CC_LAMBDA, "New LIA Increment");
374
592
dpd_file2_close(&newLIA);
376
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
594
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA Increment");
377
595
if(params.local && local.filter_singles) local_filter_T1(&newLIA);
379
dpd_file2_init(&dIA, CC_OEI, L_irr, 0, 1, "dIA");
597
dpd_file2_init(&dIA, CC_DENOM, L_irr, 0, 1, "dIA");
380
598
dpd_file2_dirprd(&dIA, &newLIA);
381
599
dpd_file2_close(&dIA);
383
601
dpd_file2_close(&newLIA);
385
dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
386
dpd_file2_copy(&LIA, CC_OEI, "New LIA");
603
dpd_file2_init(&LIA, CC_LAMBDA, L_irr, 0, 1, "LIA");
604
dpd_file2_copy(&LIA, CC_LAMBDA, "New LIA");
387
605
dpd_file2_close(&LIA);
388
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
389
dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
606
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
607
dpd_file2_init(&LIA, CC_LAMBDA, L_irr, 0, 1, "New LIA Increment");
390
608
dpd_file2_axpy(&LIA, &newLIA, 1, 0);
391
609
dpd_file2_close(&LIA);
393
dpd_file2_copy(&newLIA, CC_OEI, "New Lia"); /* spin-adaptation for RHF */
611
dpd_file2_copy(&newLIA, CC_LAMBDA, "New Lia"); /* spin-adaptation for RHF */
394
612
dpd_file2_close(&newLIA);
396
614
else if(params.ref == 1) { /** ROHF **/
398
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
399
dpd_file2_copy(&newLIA, CC_OEI, "New LIA Increment");
616
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
617
dpd_file2_copy(&newLIA, CC_LAMBDA, "New LIA Increment");
400
618
dpd_file2_close(&newLIA);
402
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
403
dpd_file2_init(&dIA, CC_OEI, L_irr, 0, 1, "dIA");
620
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA Increment");
621
dpd_file2_init(&dIA, CC_DENOM, L_irr, 0, 1, "dIA");
404
622
dpd_file2_dirprd(&dIA, &newLIA);
405
623
dpd_file2_close(&dIA);
406
624
dpd_file2_close(&newLIA);
408
dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
409
dpd_file2_copy(&LIA, CC_OEI, "New LIA");
626
dpd_file2_init(&LIA, CC_LAMBDA, L_irr, 0, 1, "LIA");
627
dpd_file2_copy(&LIA, CC_LAMBDA, "New LIA");
410
628
dpd_file2_close(&LIA);
411
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
412
dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
629
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
630
dpd_file2_init(&LIA, CC_LAMBDA, L_irr, 0, 1, "New LIA Increment");
413
631
dpd_file2_axpy(&LIA, &newLIA, 1, 0);
414
632
dpd_file2_close(&LIA);
415
633
dpd_file2_close(&newLIA);
417
dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
418
dpd_file2_copy(&newLia, CC_OEI, "New Lia Increment");
635
dpd_file2_init(&newLia, CC_LAMBDA, L_irr, 0, 1, "New Lia");
636
dpd_file2_copy(&newLia, CC_LAMBDA, "New Lia Increment");
419
637
dpd_file2_close(&newLia);
421
dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia Increment");
422
dpd_file2_init(&dia, CC_OEI, L_irr, 0, 1, "dia");
639
dpd_file2_init(&newLia, CC_LAMBDA, L_irr, 0, 1, "New Lia Increment");
640
dpd_file2_init(&dia, CC_DENOM, L_irr, 0, 1, "dia");
423
641
dpd_file2_dirprd(&dia, &newLia);
424
642
dpd_file2_close(&dia);
425
643
dpd_file2_close(&newLia);
427
dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "Lia");
428
dpd_file2_copy(&Lia, CC_OEI, "New Lia");
645
dpd_file2_init(&Lia, CC_LAMBDA, L_irr, 0, 1, "Lia");
646
dpd_file2_copy(&Lia, CC_LAMBDA, "New Lia");
429
647
dpd_file2_close(&Lia);
430
dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
431
dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "New Lia Increment");
648
dpd_file2_init(&newLia, CC_LAMBDA, L_irr, 0, 1, "New Lia");
649
dpd_file2_init(&Lia, CC_LAMBDA, L_irr, 0, 1, "New Lia Increment");
432
650
dpd_file2_axpy(&Lia, &newLia, 1, 0);
433
651
dpd_file2_close(&Lia);
434
652
dpd_file2_close(&newLia);
436
654
else if(params.ref == 2) {
438
dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
439
dpd_file2_init(&dIA, CC_OEI, L_irr, 0, 1, "dIA");
656
dpd_file2_init(&newLIA, CC_LAMBDA, L_irr, 0, 1, "New LIA");
657
dpd_file2_init(&dIA, CC_DENOM, L_irr, 0, 1, "dIA");
440
658
dpd_file2_dirprd(&dIA, &newLIA);
441
659
dpd_file2_close(&dIA);
442
660
dpd_file2_close(&newLIA);
444
dpd_file2_init(&newLia, CC_OEI, L_irr, 2, 3, "New Lia");
445
dpd_file2_init(&dia, CC_OEI, L_irr, 2, 3, "dia");
662
dpd_file2_init(&newLia, CC_LAMBDA, L_irr, 2, 3, "New Lia");
663
dpd_file2_init(&dia, CC_DENOM, L_irr, 2, 3, "dia");
446
664
dpd_file2_dirprd(&dia, &newLia);
447
665
dpd_file2_close(&dia);
448
666
dpd_file2_close(&newLia);