2
#include <libdpd/dpd.h>
8
dpdfile2 FAE, Fmi, FME, Fme;
11
int h, a, b, e, f, i, j, m, n;
12
int A, B, E, F, I, J, M, N;
13
int mn, ei, ma, ef, me, jb, mb, ij, ab;
14
int asym, bsym, esym, fsym, isym, jsym, msym, nsym;
15
int *occ_off, *vir_off;
16
int *occ_sym, *vir_sym;
19
nirreps = moinfo.nirreps;
20
occpi = moinfo.occpi; virtpi = moinfo.virtpi;
21
occ_off = moinfo.occ_off; vir_off = moinfo.vir_off;
22
occ_sym = moinfo.occ_sym; vir_sym = moinfo.vir_sym;
23
openpi = moinfo.openpi;
25
/* Purge FME matrix elements */
26
dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
27
dpd_file2_mat_init(&FME);
28
dpd_file2_mat_rd(&FME);
29
for(h=0; h < nirreps; h++) {
30
for(m=0; m<occpi[h]; m++)
31
for(e=(virtpi[h]-openpi[h]); e<virtpi[h]; e++)
32
FME.matrix[h][m][e] = 0.0;
34
dpd_file2_mat_wrt(&FME);
35
dpd_file2_mat_close(&FME);
36
dpd_file2_close(&FME);
38
/* Purge Fme matrix elements */
39
dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
40
dpd_file2_mat_init(&Fme);
41
dpd_file2_mat_rd(&Fme);
42
for(h=0; h < nirreps; h++) {
43
for(e=0; e<virtpi[h]; e++)
44
for(m=(occpi[h]-openpi[h]); m<occpi[h]; m++)
45
Fme.matrix[h][m][e] = 0.0;
47
dpd_file2_mat_wrt(&Fme);
48
dpd_file2_mat_close(&Fme);
49
dpd_file2_close(&Fme);
51
/* Purge Fmi matrix elements */
52
dpd_file2_init(&Fmi, CC_OEI, 0, 0, 0, "Fmi");
53
dpd_file2_mat_init(&Fmi);
54
dpd_file2_mat_rd(&Fmi);
55
for(h=0; h < nirreps; h++) {
57
for(i=0; i<occpi[h]; i++)
58
for(j=(occpi[h]-openpi[h]); j<occpi[h]; j++)
59
Fmi.matrix[h][i][j] = 0.0;
61
for(i=(occpi[h]-openpi[h]); i<occpi[h]; i++)
62
for(j=0; j<occpi[h]; j++)
63
Fmi.matrix[h][i][j] = 0.0;
66
dpd_file2_mat_wrt(&Fmi);
67
dpd_file2_mat_close(&Fmi);
68
dpd_file2_close(&Fmi);
70
/* Purge FAE matrix elements */
71
dpd_file2_init(&FAE, CC_OEI, 0, 1, 1, "FAE");
72
dpd_file2_mat_init(&FAE);
73
dpd_file2_mat_rd(&FAE);
74
for(h=0; h < nirreps; h++) {
76
for(a=0; a<virtpi[h]; a++)
77
for(b=(virtpi[h]-openpi[h]); b<virtpi[h]; b++)
78
FAE.matrix[h][a][b] = 0.0;
80
for(a=(virtpi[h]-openpi[h]); a<virtpi[h]; a++)
81
for(b=0; b<virtpi[h]; b++)
82
FAE.matrix[h][a][b] = 0.0;
85
dpd_file2_mat_wrt(&FAE);
86
dpd_file2_mat_close(&FAE);
87
dpd_file2_close(&FAE);
89
/* Purge Fmit (matrix elements with zero diagonal) */
90
dpd_file2_init(&Fmi, CC_OEI, 0, 0, 0, "Fmit");
91
dpd_file2_mat_init(&Fmi);
92
dpd_file2_mat_rd(&Fmi);
93
for(h=0; h < nirreps; h++) {
95
for(i=0; i<occpi[h]; i++)
96
for(j=(occpi[h]-openpi[h]); j<occpi[h]; j++)
97
Fmi.matrix[h][i][j] = 0.0;
99
for(i=(occpi[h]-openpi[h]); i<occpi[h]; i++)
100
for(j=0; j<occpi[h]; j++)
101
Fmi.matrix[h][i][j] = 0.0;
104
dpd_file2_mat_wrt(&Fmi);
105
dpd_file2_mat_close(&Fmi);
106
dpd_file2_close(&Fmi);
108
/* Purge FAEt (matrix elements with zero diagonal) */
109
dpd_file2_init(&FAE, CC_OEI, 0, 1, 1, "FAEt");
110
dpd_file2_mat_init(&FAE);
111
dpd_file2_mat_rd(&FAE);
112
for(h=0; h < nirreps; h++) {
114
for(a=0; a<virtpi[h]; a++)
115
for(b=(virtpi[h]-openpi[h]); b<virtpi[h]; b++)
116
FAE.matrix[h][a][b] = 0.0;
118
for(a=(virtpi[h]-openpi[h]); a<virtpi[h]; a++)
119
for(b=0; b<virtpi[h]; b++)
120
FAE.matrix[h][a][b] = 0.0;
123
dpd_file2_mat_wrt(&FAE);
124
dpd_file2_mat_close(&FAE);
125
dpd_file2_close(&FAE);
127
/* Purge Wmnij matrix elements */
128
dpd_file4_init(&W, CC_HBAR, 0, 2, 2,"Wmnij");
129
for(h=0; h < nirreps; h++) {
130
dpd_file4_mat_irrep_init(&W, h);
131
dpd_file4_mat_irrep_rd(&W, h);
132
for(mn=0; mn < W.params->rowtot[h]; mn++) {
133
m = W.params->roworb[h][mn][0];
134
n = W.params->roworb[h][mn][1];
135
msym = W.params->psym[m];
136
nsym = W.params->qsym[n];
137
M = m - occ_off[msym];
138
N = n - occ_off[nsym];
139
for(ij=0; ij < W.params->coltot[h]; ij++) {
140
i = W.params->colorb[h][ij][0];
141
j = W.params->colorb[h][ij][1];
142
isym = W.params->rsym[i];
143
jsym = W.params->ssym[j];
144
I = i - occ_off[isym];
145
J = j - occ_off[jsym];
146
if ((I >= (occpi[isym] - openpi[isym])) ||
147
(J >= (occpi[jsym] - openpi[jsym])) ||
148
(M >= (occpi[msym] - openpi[msym])) ||
149
(N >= (occpi[nsym] - openpi[nsym])) )
150
W.matrix[h][mn][ij] = 0.0;
153
dpd_file4_mat_irrep_wrt(&W, h);
154
dpd_file4_mat_irrep_close(&W, h);
158
dpd_file4_init(&W, CC_HBAR, 0, 0, 0,"WMnIj");
159
for(h=0; h < nirreps; h++) {
160
dpd_file4_mat_irrep_init(&W, h);
161
dpd_file4_mat_irrep_rd(&W, h);
162
for(mn=0; mn < W.params->rowtot[h]; mn++) {
163
n = W.params->roworb[h][mn][1];
164
nsym = W.params->qsym[n];
165
N = n - occ_off[nsym];
166
for(ij=0; ij < W.params->coltot[h]; ij++) {
167
j = W.params->colorb[h][ij][1];
168
jsym = W.params->ssym[j];
169
J = j - occ_off[jsym];
170
if ((J >= (occpi[jsym] - openpi[jsym])) ||
171
(N >= (occpi[nsym] - openpi[nsym])) )
172
W.matrix[h][mn][ij] = 0.0;
175
dpd_file4_mat_irrep_wrt(&W, h);
176
dpd_file4_mat_irrep_close(&W, h);
180
/* Purge Wmbej matrix elements */
181
dpd_file4_init(&W, CC_HBAR, 0, 10, 10,"WMBEJ");
182
for(h=0; h < nirreps; h++) {
183
dpd_file4_mat_irrep_init(&W, h);
184
dpd_file4_mat_irrep_rd(&W, h);
185
for(me=0; me < W.params->rowtot[h]; me++) {
186
e = W.params->roworb[h][me][1];
187
esym = W.params->qsym[e];
188
E = e - vir_off[esym];
189
for(jb=0; jb < W.params->coltot[h]; jb++) {
190
b = W.params->colorb[h][jb][1];
191
bsym = W.params->ssym[b];
192
B = b - vir_off[bsym];
193
if ((E >= (virtpi[esym] - openpi[esym])) ||
194
(B >= (virtpi[bsym] - openpi[bsym])) )
195
W.matrix[h][me][jb] = 0.0;
198
dpd_file4_mat_irrep_wrt(&W, h);
199
dpd_file4_mat_irrep_close(&W, h);
203
dpd_file4_init(&W, CC_HBAR, 0, 10, 10,"Wmbej");
204
for(h=0; h < nirreps; h++) {
205
dpd_file4_mat_irrep_init(&W, h);
206
dpd_file4_mat_irrep_rd(&W, h);
207
for(me=0; me < W.params->rowtot[h]; me++) {
208
m = W.params->roworb[h][me][0];
209
msym = W.params->psym[m];
210
M = m - occ_off[msym];
211
for(jb=0; jb < W.params->coltot[h]; jb++) {
212
j = W.params->colorb[h][jb][0];
213
jsym = W.params->rsym[j];
214
J = j - occ_off[jsym];
215
if ((M >= (occpi[msym] - openpi[msym])) ||
216
(J >= (occpi[jsym] - openpi[jsym])) )
217
W.matrix[h][me][jb] = 0.0;
220
dpd_file4_mat_irrep_wrt(&W, h);
221
dpd_file4_mat_irrep_close(&W, h);
225
dpd_file4_init(&W, CC_HBAR, 0, 10, 10,"WMbEj");
226
for(h=0; h < nirreps; h++) {
227
dpd_file4_mat_irrep_init(&W, h);
228
dpd_file4_mat_irrep_rd(&W, h);
229
for(me=0; me < W.params->rowtot[h]; me++) {
230
e = W.params->roworb[h][me][1];
231
esym = W.params->qsym[e];
232
E = e - vir_off[esym];
233
for(jb=0; jb < W.params->coltot[h]; jb++) {
234
j = W.params->colorb[h][jb][0];
235
jsym = W.params->rsym[j];
236
J = j - occ_off[jsym];
237
if ((E >= (virtpi[esym] - openpi[esym])) ||
238
(J >= (occpi[jsym] - openpi[jsym])) )
239
W.matrix[h][me][jb] = 0.0;
242
dpd_file4_mat_irrep_wrt(&W, h);
243
dpd_file4_mat_irrep_close(&W, h);
247
dpd_file4_init(&W, CC_HBAR, 0, 10, 10,"WmBeJ");
248
for(h=0; h < nirreps; h++) {
249
dpd_file4_mat_irrep_init(&W, h);
250
dpd_file4_mat_irrep_rd(&W, h);
251
for(me=0; me < W.params->rowtot[h]; me++) {
252
m = W.params->roworb[h][me][0];
253
msym = W.params->psym[m];
254
M = m - occ_off[msym];
255
for(jb=0; jb < W.params->coltot[h]; jb++) {
256
b = W.params->colorb[h][jb][1];
257
bsym = W.params->ssym[b];
258
B = b - vir_off[bsym];
259
if ((M >= (occpi[msym] - openpi[msym])) ||
260
(B >= (virtpi[bsym] - openpi[bsym])) )
261
W.matrix[h][me][jb] = 0.0;
264
dpd_file4_mat_irrep_wrt(&W, h);
265
dpd_file4_mat_irrep_close(&W, h);
269
dpd_file4_init(&W, CC_HBAR, 0, 10, 10,"WmBEj");
270
for(h=0; h < nirreps; h++) {
271
dpd_file4_mat_irrep_init(&W, h);
272
dpd_file4_mat_irrep_rd(&W, h);
273
for(me=0; me < W.params->rowtot[h]; me++) {
274
m = W.params->roworb[h][me][0];
275
e = W.params->roworb[h][me][1];
276
msym = W.params->psym[m];
277
esym = W.params->qsym[e];
278
M = m - occ_off[msym];
279
E = e - vir_off[esym];
280
for(jb=0; jb < W.params->coltot[h]; jb++) {
281
j = W.params->colorb[h][jb][0];
282
b = W.params->colorb[h][jb][1];
283
jsym = W.params->rsym[j];
284
bsym = W.params->ssym[b];
285
J = j - occ_off[jsym];
286
B = b - vir_off[bsym];
287
if ((M >= (occpi[msym] - openpi[msym])) ||
288
(E >= (virtpi[esym] - openpi[esym])) ||
289
(J >= (occpi[jsym] - openpi[jsym])) ||
290
(B >= (virtpi[bsym] - openpi[bsym])) )
291
W.matrix[h][me][jb] = 0.0;
294
dpd_file4_mat_irrep_wrt(&W, h);
295
dpd_file4_mat_irrep_close(&W, h);
299
/* WMbeJ is already OK */
301
/* Purge Wamef matrix elements */
302
dpd_file4_init(&W, CC_HBAR, 0, 11, 7,"WAMEF");
303
for(h=0; h < nirreps; h++) {
304
dpd_file4_mat_irrep_init(&W, h);
305
dpd_file4_mat_irrep_rd(&W, h);
306
for(ma=0; ma < W.params->rowtot[h]; ma++) {
307
a = W.params->roworb[h][ma][0];
308
asym = W.params->psym[a];
309
A = a - vir_off[asym];
310
for(ef=0; ef< W.params->coltot[h]; ef++) {
311
e = W.params->colorb[h][ef][0];
312
f = W.params->colorb[h][ef][1];
313
esym = W.params->rsym[e];
314
fsym = W.params->ssym[f];
315
E = e - vir_off[esym];
316
F = f - vir_off[fsym];
317
if ((A >= (virtpi[asym] - openpi[asym])) ||
318
(E >= (virtpi[esym] - openpi[esym])) ||
319
(F >= (virtpi[fsym] - openpi[fsym])) )
320
W.matrix[h][ma][ef] = 0.0;
323
dpd_file4_mat_irrep_wrt(&W, h);
324
dpd_file4_mat_irrep_close(&W, h);
328
dpd_file4_init(&W, CC_HBAR, 0, 11, 7,"Wamef");
329
for(h=0; h < nirreps; h++) {
330
dpd_file4_mat_irrep_init(&W, h);
331
dpd_file4_mat_irrep_rd(&W, h);
332
for(ma=0; ma < W.params->rowtot[h]; ma++) {
333
m = W.params->roworb[h][ma][1];
334
msym = W.params->qsym[m];
335
M = m - occ_off[msym];
336
for(ef=0; ef< W.params->coltot[h]; ef++) {
337
if (M >= (occpi[msym] - openpi[msym]))
338
W.matrix[h][ma][ef] = 0.0;
341
dpd_file4_mat_irrep_wrt(&W, h);
342
dpd_file4_mat_irrep_close(&W, h);
346
dpd_file4_init(&W, CC_HBAR, 0, 11, 5,"WAmEf");
347
for(h=0; h < nirreps; h++) {
348
dpd_file4_mat_irrep_init(&W, h);
349
dpd_file4_mat_irrep_rd(&W, h);
350
for(ma=0; ma < W.params->rowtot[h]; ma++) {
351
a = W.params->roworb[h][ma][0];
352
m = W.params->roworb[h][ma][1];
353
asym = W.params->psym[a];
354
msym = W.params->qsym[m];
355
M = m - occ_off[msym];
356
A = a - vir_off[asym];
357
for(ef=0; ef< W.params->coltot[h]; ef++) {
358
e = W.params->colorb[h][ef][0];
359
esym = W.params->rsym[e];
360
E = e - vir_off[esym];
361
if ((A >= (virtpi[asym] - openpi[asym])) ||
362
(M >= (occpi[msym] - openpi[msym])) ||
363
(E >= (virtpi[esym] - openpi[esym])) )
364
W.matrix[h][ma][ef] = 0.0;
367
dpd_file4_mat_irrep_wrt(&W, h);
368
dpd_file4_mat_irrep_close(&W, h);
372
dpd_file4_init(&W, CC_HBAR, 0, 11, 5,"WaMeF");
373
for(h=0; h < nirreps; h++) {
374
dpd_file4_mat_irrep_init(&W, h);
375
dpd_file4_mat_irrep_rd(&W, h);
376
for(ma=0; ma < W.params->rowtot[h]; ma++) {
377
for(ef=0; ef< W.params->coltot[h]; ef++) {
378
f = W.params->colorb[h][ef][1];
379
fsym = W.params->ssym[f];
380
F = f - vir_off[fsym];
381
if (F >= (virtpi[fsym] - openpi[fsym]))
382
W.matrix[h][ma][ef] = 0.0;
385
dpd_file4_mat_irrep_wrt(&W, h);
386
dpd_file4_mat_irrep_close(&W, h);
391
/* Purge Wmnie matrix elements */
392
/* moving to separate function
393
dpd_file4_init(&W, CC_HBAR, 0, 2, 11,"WMNIE");
394
for(h=0; h < W.params->nirreps; h++) {
395
dpd_file4_mat_irrep_init(&W, h);
396
dpd_file4_mat_irrep_rd(&W, h);
397
for(mn=0; mn<W.params->rowtot[h]; mn++) {
398
for(ei=0; ei<W.params->coltot[h]; ei++) {
399
e = W.params->colorb[h][ei][0];
400
esym = W.params->rsym[e];
401
E = e - vir_off[esym];
402
if (E >= (virtpi[esym] - openpi[esym]))
403
W.matrix[h][mn][ei] = 0.0;
406
dpd_file4_mat_irrep_wrt(&W, h);
407
dpd_file4_mat_irrep_close(&W, h);
411
dpd_file4_init(&W, CC_HBAR, 0, 2, 11,"Wmnie");
412
for(h=0; h < nirreps; h++) {
413
dpd_file4_mat_irrep_init(&W, h);
414
dpd_file4_mat_irrep_rd(&W, h);
415
for(mn=0; mn<W.params->rowtot[h]; mn++) {
416
m = W.params->roworb[h][mn][0];
417
n = W.params->roworb[h][mn][1];
418
msym = W.params->psym[m];
419
nsym = W.params->qsym[n];
420
M = m - occ_off[msym];
421
N = n - occ_off[nsym];
422
for(ei=0; ei<W.params->coltot[h]; ei++) {
423
i = W.params->colorb[h][ei][1];
424
isym = W.params->ssym[i];
425
I = i - occ_off[isym];
426
if ((M >= (occpi[msym] - openpi[msym])) ||
427
(N >= (occpi[nsym] - openpi[nsym])) ||
428
(I >= (occpi[isym] - openpi[isym])) )
429
W.matrix[h][mn][ei] = 0.0;
432
dpd_file4_mat_irrep_wrt(&W, h);
433
dpd_file4_mat_irrep_close(&W, h);
437
dpd_file4_init(&W, CC_HBAR, 0, 0, 11,"WMnIe");
438
for(h=0; h < nirreps; h++) {
439
dpd_file4_mat_irrep_init(&W, h);
440
dpd_file4_mat_irrep_rd(&W, h);
441
for(mn=0; mn<W.params->rowtot[h]; mn++) {
442
n = W.params->roworb[h][mn][1];
443
nsym = W.params->qsym[n];
444
N = n - occ_off[nsym];
445
for(ei=0; ei<W.params->coltot[h]; ei++) {
446
if (N >= (occpi[nsym] - openpi[nsym]))
447
W.matrix[h][mn][ei] = 0.0;
450
dpd_file4_mat_irrep_wrt(&W, h);
451
dpd_file4_mat_irrep_close(&W, h);
454
dpd_file4_init(&W, CC_HBAR, 0, 0, 11,"WmNiE");
455
for(h=0; h < nirreps; h++) {
456
dpd_file4_mat_irrep_init(&W, h);
457
dpd_file4_mat_irrep_rd(&W, h);
458
for(mn=0; mn<W.params->rowtot[h]; mn++) {
459
m = W.params->roworb[h][mn][0];
460
msym = W.params->psym[m];
461
M = m - occ_off[msym];
462
for(ei=0; ei<W.params->coltot[h]; ei++) {
463
e = W.params->colorb[h][ei][0];
464
i = W.params->colorb[h][ei][1];
465
esym = W.params->rsym[e];
466
isym = W.params->ssym[i];
467
E = e - vir_off[esym];
468
I = i - occ_off[isym];
469
if ((M >= (occpi[msym] - openpi[msym])) ||
470
(E >= (virtpi[esym] - openpi[esym])) ||
471
(I >= (occpi[isym] - openpi[isym])) )
472
W.matrix[h][mn][ei] = 0.0;
475
dpd_file4_mat_irrep_wrt(&W, h);
476
dpd_file4_mat_irrep_close(&W, h);
482
/* Purge WMBIJ matrix elements */
483
dpd_file4_init(&W, CC_HBAR, 0, 10, 2,"WMBIJ");
484
for(h=0; h < nirreps; h++) {
485
dpd_file4_mat_irrep_init(&W, h);
486
dpd_file4_mat_irrep_rd(&W, h);
487
for(mb=0; mb<W.params->rowtot[h]; mb++) {
488
b = W.params->roworb[h][mb][1];
489
bsym = W.params->qsym[b];
490
B = b - vir_off[bsym];
491
for(ij=0; ij<W.params->coltot[h]; ij++) {
492
if (B >= (virtpi[bsym] - openpi[bsym]))
493
W.matrix[h][mb][ij] = 0.0;
496
dpd_file4_mat_irrep_wrt(&W, h);
497
dpd_file4_mat_irrep_close(&W, h);
501
dpd_file4_init(&W, CC_HBAR, 0, 10, 2,"Wmbij");
502
for(h=0; h < nirreps; h++) {
503
dpd_file4_mat_irrep_init(&W, h);
504
dpd_file4_mat_irrep_rd(&W, h);
505
for(mb=0; mb<W.params->rowtot[h]; mb++) {
506
m = W.params->roworb[h][mb][0];
507
msym = W.params->psym[m];
508
M = m - occ_off[msym];
509
for(ij=0; ij<W.params->coltot[h]; ij++) {
510
i = W.params->colorb[h][ij][0];
511
j = W.params->colorb[h][ij][1];
512
isym = W.params->rsym[i];
513
jsym = W.params->ssym[j];
514
I = i - occ_off[isym];
515
J = j - occ_off[jsym];
516
if ((M >= (occpi[msym] - openpi[msym])) ||
517
(I >= (occpi[isym] - openpi[isym])) ||
518
(J >= (occpi[jsym] - openpi[jsym])) )
519
W.matrix[h][mb][ij] = 0.0;
522
dpd_file4_mat_irrep_wrt(&W, h);
523
dpd_file4_mat_irrep_close(&W, h);
527
dpd_file4_init(&W, CC_HBAR, 0, 10, 0,"WMbIj");
528
for(h=0; h < nirreps; h++) {
529
dpd_file4_mat_irrep_init(&W, h);
530
dpd_file4_mat_irrep_rd(&W, h);
531
for(mb=0; mb<W.params->rowtot[h]; mb++) {
532
for(ij=0; ij<W.params->coltot[h]; ij++) {
533
j = W.params->colorb[h][ij][1];
534
jsym = W.params->ssym[j];
535
J = j - occ_off[jsym];
536
if (J >= (occpi[jsym] - openpi[jsym]))
537
W.matrix[h][mb][ij] = 0.0;
540
dpd_file4_mat_irrep_wrt(&W, h);
541
dpd_file4_mat_irrep_close(&W, h);
545
dpd_file4_init(&W, CC_HBAR, 0, 10, 0,"WmBiJ");
546
for(h=0; h < nirreps; h++) {
547
dpd_file4_mat_irrep_init(&W, h);
548
dpd_file4_mat_irrep_rd(&W, h);
549
for(mb=0; mb<W.params->rowtot[h]; mb++) {
550
m = W.params->roworb[h][mb][0];
551
b = W.params->roworb[h][mb][1];
552
msym = W.params->psym[m];
553
bsym = W.params->qsym[b];
554
M = m - occ_off[msym];
555
B = b - vir_off[bsym];
556
for(ij=0; ij<W.params->coltot[h]; ij++) {
557
i = W.params->colorb[h][ij][0];
558
isym = W.params->rsym[i];
559
I = i - occ_off[isym];
560
if ((M >= (occpi[msym] - openpi[msym])) ||
561
(B >= (virtpi[bsym] - openpi[bsym])) ||
562
(I >= (occpi[isym] - openpi[isym])) )
563
W.matrix[h][mb][ij] = 0.0;
566
dpd_file4_mat_irrep_wrt(&W, h);
567
dpd_file4_mat_irrep_close(&W, h);
575
/* Purge Wabei matrix elements */
576
dpd_file4_init(&W, CC_HBAR, 0, 11, 7,"WEIAB");
577
for(h=0; h < nirreps; h++) {
578
dpd_file4_mat_irrep_init(&W, h);
579
dpd_file4_mat_irrep_rd(&W, h);
580
for(ei=0; ei<W.params->rowtot[h]; ei++) {
581
e = W.params->roworb[h][ei][0];
582
esym = W.params->psym[e];
583
E = e - vir_off[esym];
584
for(ab=0; ab<W.params->coltot[h]; ab++) {
585
a = W.params->colorb[h][ab][0];
586
b = W.params->colorb[h][ab][1];
587
asym = W.params->rsym[a];
588
bsym = W.params->ssym[b];
589
A = a - vir_off[asym];
590
B = b - vir_off[bsym];
591
if ((E >= (virtpi[esym] - openpi[esym])) ||
592
(A >= (virtpi[asym] - openpi[asym])) ||
593
(B >= (virtpi[bsym] - openpi[bsym])) )
594
W.matrix[h][ei][ab] = 0.0;
597
dpd_file4_mat_irrep_wrt(&W, h);
598
dpd_file4_mat_irrep_close(&W, h);
602
dpd_file4_init(&W, CC_HBAR, 0, 11, 7,"Weiab");
603
for(h=0; h < nirreps; h++) {
604
dpd_file4_mat_irrep_init(&W, h);
605
dpd_file4_mat_irrep_rd(&W, h);
606
for(ei=0; ei<W.params->rowtot[h]; ei++) {
607
i = W.params->roworb[h][ei][1];
608
isym = W.params->qsym[i];
609
I = i - occ_off[isym];
610
for(ab=0; ab<W.params->coltot[h]; ab++) {
611
if (I >= (occpi[isym] - openpi[isym]))
612
W.matrix[h][ei][ab] = 0.0;
615
dpd_file4_mat_irrep_wrt(&W, h);
616
dpd_file4_mat_irrep_close(&W, h);
620
dpd_file4_init(&W, CC_HBAR, 0, 11, 5,"WEiAb");
621
for(h=0; h < nirreps; h++) {
622
dpd_file4_mat_irrep_init(&W, h);
623
dpd_file4_mat_irrep_rd(&W, h);
624
for(ei=0; ei<W.params->rowtot[h]; ei++) {
625
e = W.params->roworb[h][ei][0];
626
i = W.params->roworb[h][ei][1];
627
esym = W.params->psym[e];
628
isym = W.params->qsym[i];
629
E = e - vir_off[esym];
630
I = i - occ_off[isym];
631
for(ab=0; ab<W.params->coltot[h]; ab++) {
632
a = W.params->colorb[h][ab][0];
633
asym = W.params->rsym[a];
634
bsym = W.params->ssym[b];
635
A = a - vir_off[asym];
636
if ((E >= (virtpi[esym] - openpi[esym])) ||
637
(I >= (occpi[isym] - openpi[isym])) ||
638
(A >= (virtpi[asym] - openpi[asym])) )
639
W.matrix[h][ei][ab] = 0.0;
642
dpd_file4_mat_irrep_wrt(&W, h);
643
dpd_file4_mat_irrep_close(&W, h);
647
dpd_file4_init(&W, CC_HBAR, 0, 11, 5,"WeIaB");
648
for(h=0; h < nirreps; h++) {
649
dpd_file4_mat_irrep_init(&W, h);
650
dpd_file4_mat_irrep_rd(&W, h);
651
for(ei=0; ei<W.params->rowtot[h]; ei++) {
652
for(ab=0; ab<W.params->coltot[h]; ab++) {
653
b = W.params->colorb[h][ab][1];
654
bsym = W.params->ssym[b];
655
B = b - vir_off[bsym];
656
if (B >= (virtpi[bsym] - openpi[bsym]))
657
W.matrix[h][ei][ab] = 0.0;
660
dpd_file4_mat_irrep_wrt(&W, h);
661
dpd_file4_mat_irrep_close(&W, h);
668
/* Purge Wmnie matrix elements */
669
void purge_Wmnie(void) {
672
int h, a, b, e, f, i, j, m, n;
673
int A, B, E, F, I, J, M, N;
674
int mn, ei, ma, ef, me, jb, mb, ij, ab;
675
int asym, bsym, esym, fsym, isym, jsym, msym, nsym;
676
int *occ_off, *vir_off;
677
int *occ_sym, *vir_sym;
678
int *openpi, nirreps;
680
nirreps = moinfo.nirreps;
681
occpi = moinfo.occpi; virtpi = moinfo.virtpi;
682
occ_off = moinfo.occ_off; vir_off = moinfo.vir_off;
683
occ_sym = moinfo.occ_sym; vir_sym = moinfo.vir_sym;
684
openpi = moinfo.openpi;
686
dpd_file4_init(&W, CC_HBAR, 0, 0, 11,"WMnIe (Mn,eI)");
687
for(h=0; h < nirreps; h++) {
688
dpd_file4_mat_irrep_init(&W, h);
689
dpd_file4_mat_irrep_rd(&W, h);
690
for(mn=0; mn<W.params->rowtot[h]; mn++) {
691
n = W.params->roworb[h][mn][1];
692
nsym = W.params->qsym[n];
693
N = n - occ_off[nsym];
694
for(ei=0; ei<W.params->coltot[h]; ei++) {
695
if (N >= (occpi[nsym] - openpi[nsym]))
696
W.matrix[h][mn][ei] = 0.0;
699
dpd_file4_mat_irrep_wrt(&W, h);
700
dpd_file4_mat_irrep_close(&W, h);
703
dpd_file4_init(&W, CC_HBAR, 0, 2, 11, "WMNIE (M>N,EI)");
704
for(h=0; h < W.params->nirreps; h++) {
705
dpd_file4_mat_irrep_init(&W, h);
706
dpd_file4_mat_irrep_rd(&W, h);
707
for(mn=0; mn<W.params->rowtot[h]; mn++) {
708
for(ei=0; ei<W.params->coltot[h]; ei++) {
709
e = W.params->colorb[h][ei][0];
710
esym = W.params->rsym[e];
711
E = e - vir_off[esym];
712
if (E >= (virtpi[esym] - openpi[esym]))
713
W.matrix[h][mn][ei] = 0.0;
716
dpd_file4_mat_irrep_wrt(&W, h);
717
dpd_file4_mat_irrep_close(&W, h);
721
dpd_file4_init(&W, CC_HBAR, 0, 2, 11,"Wmnie (m>n,ei)");
722
for(h=0; h < nirreps; h++) {
723
dpd_file4_mat_irrep_init(&W, h);
724
dpd_file4_mat_irrep_rd(&W, h);
725
for(mn=0; mn<W.params->rowtot[h]; mn++) {
726
m = W.params->roworb[h][mn][0];
727
n = W.params->roworb[h][mn][1];
728
msym = W.params->psym[m];
729
nsym = W.params->qsym[n];
730
M = m - occ_off[msym];
731
N = n - occ_off[nsym];
732
for(ei=0; ei<W.params->coltot[h]; ei++) {
733
i = W.params->colorb[h][ei][1];
734
isym = W.params->ssym[i];
735
I = i - occ_off[isym];
736
if ((M >= (occpi[msym] - openpi[msym])) ||
737
(N >= (occpi[nsym] - openpi[nsym])) ||
738
(I >= (occpi[isym] - openpi[isym])) )
739
W.matrix[h][mn][ei] = 0.0;
742
dpd_file4_mat_irrep_wrt(&W, h);
743
dpd_file4_mat_irrep_close(&W, h);
747
dpd_file4_init(&W, CC_HBAR, 0, 0, 11,"WmNiE (mN,Ei)");
748
for(h=0; h < nirreps; h++) {
749
dpd_file4_mat_irrep_init(&W, h);
750
dpd_file4_mat_irrep_rd(&W, h);
751
for(mn=0; mn<W.params->rowtot[h]; mn++) {
752
m = W.params->roworb[h][mn][0];
753
msym = W.params->psym[m];
754
M = m - occ_off[msym];
755
for(ei=0; ei<W.params->coltot[h]; ei++) {
756
e = W.params->colorb[h][ei][0];
757
i = W.params->colorb[h][ei][1];
758
esym = W.params->rsym[e];
759
isym = W.params->ssym[i];
760
E = e - vir_off[esym];
761
I = i - occ_off[isym];
762
if ((M >= (occpi[msym] - openpi[msym])) ||
763
(E >= (virtpi[esym] - openpi[esym])) ||
764
(I >= (occpi[isym] - openpi[isym])) )
765
W.matrix[h][mn][ei] = 0.0;
768
dpd_file4_mat_irrep_wrt(&W, h);
769
dpd_file4_mat_irrep_close(&W, h);