306
299
/* WMbeJ is already OK */
310
301
/* Purge Wamef matrix elements */
311
dpd_file4_init(&W, CC_HBAR, 0, 10, 7,"WAMEF");
302
dpd_file4_init(&W, CC_HBAR, 0, 11, 7,"WAMEF");
312
303
for(h=0; h < nirreps; h++) {
313
304
dpd_file4_mat_irrep_init(&W, h);
314
305
dpd_file4_mat_irrep_rd(&W, h);
315
306
for(ma=0; ma < W.params->rowtot[h]; ma++) {
316
a = W.params->roworb[h][ma][1];
317
asym = W.params->qsym[a];
307
a = W.params->roworb[h][ma][0];
308
asym = W.params->psym[a];
318
309
A = a - vir_off[asym];
319
310
for(ef=0; ef< W.params->coltot[h]; ef++) {
320
311
e = W.params->colorb[h][ef][0];
335
326
dpd_file4_close(&W);
337
dpd_file4_init(&W, CC_HBAR, 0, 10, 7,"Wamef");
328
dpd_file4_init(&W, CC_HBAR, 0, 11, 7,"Wamef");
338
329
for(h=0; h < nirreps; h++) {
339
330
dpd_file4_mat_irrep_init(&W, h);
340
331
dpd_file4_mat_irrep_rd(&W, h);
341
332
for(ma=0; ma < W.params->rowtot[h]; ma++) {
342
m = W.params->roworb[h][ma][0];
343
msym = W.params->psym[m];
333
m = W.params->roworb[h][ma][1];
334
msym = W.params->qsym[m];
344
335
M = m - occ_off[msym];
345
336
for(ef=0; ef< W.params->coltot[h]; ef++) {
346
337
if (M >= (occpi[msym] - openpi[msym]))
353
344
dpd_file4_close(&W);
355
dpd_file4_init(&W, CC_HBAR, 0, 10, 5,"WAmEf");
346
dpd_file4_init(&W, CC_HBAR, 0, 11, 5,"WAmEf");
356
347
for(h=0; h < nirreps; h++) {
357
348
dpd_file4_mat_irrep_init(&W, h);
358
349
dpd_file4_mat_irrep_rd(&W, h);
359
350
for(ma=0; ma < W.params->rowtot[h]; ma++) {
360
m = W.params->roworb[h][ma][0];
361
a = W.params->roworb[h][ma][1];
362
msym = W.params->psym[m];
363
asym = W.params->qsym[a];
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];
364
355
M = m - occ_off[msym];
365
356
A = a - vir_off[asym];
366
357
for(ef=0; ef< W.params->coltot[h]; ef++) {
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);