~ubuntu-branches/ubuntu/karmic/psicode/karmic

« back to all changes in this revision

Viewing changes to src/bin/cceom/cc3_HC1ET1.cc

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2009-02-23 00:12:02 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090223001202-rutldoy3dimfpesc
Tags: 3.4.0-1
* New upstream release.

[ Michael Banck ]
* debian/patches/01_DESTDIR.dpatch: Refreshed.
* debian/patches/02_FHS.dpatch: Removed, applied upstream.
* debian/patches/03_debian_docdir: Likewise.
* debian/patches/04_man.dpatch: Likewise.
* debian/patches/06_466828_fix_gcc_43_ftbfs.dpatch: Likewise.
* debian/patches/07_464867_move_executables: Fixed and refreshed.
* debian/patches/00list: Adjusted.
* debian/control: Improved description.
* debian/patches-held: Removed.
* debian/rules (install/psi3): Do not ship the ruby bindings for now.

[ Daniel Leidert ]
* debian/rules: Fix txtdir via DEB_MAKE_INSTALL_TARGET.
* debian/patches/01_DESTDIR.dpatch: Refreshed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*! \file
 
2
    \ingroup CCEOM
 
3
    \brief Enter brief description of file here 
 
4
*/
 
5
#include <libdpd/dpd.h>
 
6
#include "MOInfo.h"
 
7
#include "Params.h"
 
8
#include "Local.h"
 
9
#define EXTERN
 
10
#include "globals.h"
 
11
 
 
12
namespace psi { namespace cceom {
 
13
 
 
14
/* compute [ [H,eT1] , C1 ]
 
15
 *
 
16
 * [H,eT^1] matrix elements are in CC3_HET1
 
17
 *
 
18
 * C1 has symmetry C_irr and is read from EOM_CME with name "CME i"
 
19
 *
 
20
 * illustrative code that computes [H,C1] is in cc3_HC1.c
 
21
 *
 
22
 * output matrix elements are written to CC_HC1ET1
 
23
 *
 
24
*/
 
25
void HC1ET1_Wmbij(int i, int C_irr);
 
26
void HC1ET1_Wabei(int i, int C_irr);
 
27
void HC1ET1_Wmbij_rhf(int i, int C_irr);
 
28
void HC1ET1_Wabei_rhf(int i, int C_irr);
 
29
 
 
30
void cc3_HC1ET1 (int i, int C_irr) {
 
31
 
 
32
  /* only need new Wmbij and Wabei for CC3 EOM energies */
 
33
 
 
34
  if (params.ref == 0) {
 
35
    HC1ET1_Wmbij_rhf(i, C_irr);
 
36
    HC1ET1_Wabei_rhf(i, C_irr);
 
37
  }
 
38
  else {
 
39
    HC1ET1_Wmbij(i, C_irr);
 
40
    HC1ET1_Wabei(i, C_irr);
 
41
  }
 
42
 
 
43
  return;
 
44
}
 
45
 
 
46
void HC1ET1_Wmbij(int i, int C_irr)
 
47
{
 
48
  double dot;
 
49
  dpdbuf4 C, D, E, F, Ht, W, W1, X, Z;
 
50
  dpdfile2 CME, Cme;
 
51
  char CME_lbl[32], Cme_lbl[32];
 
52
  sprintf(CME_lbl, "%s %d", "CME", i);
 
53
  sprintf(Cme_lbl, "%s %d", "Cme", i);
 
54
 
 
55
  if (params.ref == 1) { /** ROHF **/
 
56
    dpd_file2_init(&CME, EOM_CME, C_irr, 0, 1, CME_lbl);
 
57
    dpd_file2_init(&Cme, EOM_Cme, C_irr, 0, 1, Cme_lbl);
 
58
 
 
59
    dpd_file2_close(&CME);
 
60
    dpd_file2_close(&Cme);
 
61
  }
 
62
  else if (params.ref == 2) { /** UHF **/
 
63
 
 
64
    dpd_file2_init(&CME, EOM_CME, C_irr, 0, 1, CME_lbl);
 
65
    dpd_file2_init(&Cme, EOM_Cme, C_irr, 2, 3, Cme_lbl);
 
66
 
 
67
    /**** Term I ****/
 
68
 
 
69
    /***** Ht (MB,I>J) <--- -WMNIJ * CNB *****/
 
70
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 20, 2, 20, 2, 0, "Ht_WMBIJ (MB,I>J)");
 
71
    dpd_buf4_init(&W, CC3_HET1, 0, 0, 2, 2, 2, 0, "CC3 WMNIJ (M>N,I>J)");
 
72
    dpd_contract424(&W, &CME, &Ht, 1, 0, 1, -1.0, 0.0);
 
73
    dpd_buf4_close(&W);
 
74
    dpd_buf4_close(&Ht);
 
75
 
 
76
    /***** Ht (mb,i>j) <--- -Wmnij * Cnb *****/
 
77
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 30, 12, 30, 12, 0, "Ht_Wmbij (mb,i>j)");
 
78
    dpd_buf4_init(&W, CC3_HET1, 0, 10, 12, 12, 12, 0, "CC3 Wmnij (m>n,i>j)");
 
79
    dpd_contract424(&W, &Cme, &Ht, 1, 0, 1, -1.0, 0.0);
 
80
    dpd_buf4_close(&W);
 
81
    dpd_buf4_close(&Ht);
 
82
 
 
83
    /***** Ht (Mb,Ij) <--- -WMnIj * Cnb *****/
 
84
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 24, 22, 24, 22, 0, "Ht_WMbIj (Mb,Ij)");
 
85
    dpd_buf4_init(&W, CC3_HET1, 0, 22, 22, 22, 22, 0, "CC3 WMnIj (Mn,Ij)");
 
86
    dpd_contract424(&W, &Cme, &Ht, 1, 0, 1, -1.0, 0.0);
 
87
    dpd_buf4_close(&W);
 
88
    dpd_buf4_close(&Ht);
 
89
 
 
90
    /***** Ht (mB,iJ) <--- ZBmJi <--- CNB * WNmJi *****/
 
91
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 26, 22, 26, 22, 0, "Z (Bm,Ji)");
 
92
    dpd_buf4_init(&W, CC3_HET1, 0, 22, 22, 22, 22, 0, "CC3 WMnIj (Mn,Ij)");
 
93
    dpd_contract244(&CME, &W, &Z, 0, 0, 0, -1.0, 0.0);
 
94
    dpd_buf4_close(&W);
 
95
    dpd_buf4_sort(&Z, CC3_HC1ET1, qpsr, 27, 23, "Ht_WmBiJ (mB,iJ)");
 
96
    dpd_buf4_close(&Z);
 
97
                
 
98
    /**** Term II ****/
 
99
 
 
100
    /***** Ht (MB,I>J) <--- -P(I/J) X (MB,JI) <--- WMBEJ(ME,JB) * CIE *****/
 
101
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 0, 20, 0, 20, 0, "Z (MI,JB)");
 
102
    dpd_buf4_init(&W, CC3_HET1, 0, 20, 20, 20, 20, 0, "CC3 WMBEJ (ME,JB)");
 
103
    dpd_contract424(&W, &CME, &Z, 1, 1, 1, 1.0, 0.0);
 
104
    dpd_buf4_close(&W);
 
105
 
 
106
    dpd_buf4_sort(&Z, CC_TMP0, psrq, 20, 0, "X (MB,JI)");
 
107
    dpd_buf4_close(&Z);
 
108
    dpd_buf4_init(&X, CC_TMP0, C_irr, 20, 0, 20, 0, 0, "X (MB,JI)");
 
109
    dpd_buf4_sort_axpy(&X, CC3_HC1ET1, pqsr, 20, 2, "Ht_WMBIJ (MB,I>J)", 1);
 
110
 
 
111
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 20, 0, 20, 2, 0, "Ht_WMBIJ (MB,I>J)");
 
112
    dpd_buf4_axpy(&X, &Ht, -1);
 
113
    dpd_buf4_close(&X);
 
114
    dpd_buf4_close(&Ht);
 
115
 
 
116
    /***** Ht (mb,i>j) <--- -P(i/j) X (mb,ij) <--- Wmbej (me,jb) * Cie *****/
 
117
 
 
118
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 10, 30, 10, 30, 0, "Z (mi,jb)");
 
119
    dpd_buf4_init(&W, CC3_HET1, 0, 30, 30, 30, 30, 0, "CC3 Wmbej (me,jb)");
 
120
    dpd_contract424(&W, &Cme, &Z, 1, 1, 1, 1.0, 0.0);
 
121
    dpd_buf4_close(&W);
 
122
 
 
123
    dpd_buf4_sort(&Z, CC_TMP0, psrq, 30, 10, "X (mb,ji)");
 
124
    dpd_buf4_close(&Z);
 
125
    dpd_buf4_init(&X, CC_TMP0, C_irr, 30, 10, 30, 10, 0, "X (mb,ji)");
 
126
    dpd_buf4_sort_axpy(&X, CC3_HC1ET1, pqsr, 30, 12, "Ht_Wmbij (mb,i>j)", 1);
 
127
 
 
128
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 30, 10, 30, 12, 0, "Ht_Wmbij (mb,i>j)");
 
129
    dpd_buf4_axpy(&X, &Ht, -1);
 
130
    dpd_buf4_close(&X);
 
131
    dpd_buf4_close(&Ht);
 
132
 
 
133
    /***** Ht (Mb,Ij) <--- CIE * WMbEj *****/
 
134
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 0, 30, 0, 30, 0, "Z (MI,jb)");
 
135
    dpd_buf4_init(&W, CC3_HET1, 0, 20, 30, 20, 30, 0, "CC3 WMbEj (ME,jb)");
 
136
    dpd_contract424(&W, &CME, &Z, 1, 1, 1, 1.0, 0.0);
 
137
    dpd_buf4_close(&W);
 
138
    dpd_buf4_sort_axpy(&Z, CC3_HC1ET1, psqr, 24, 22, "Ht_WMbIj (Mb,Ij)", 1);
 
139
    dpd_buf4_close(&Z);
 
140
 
 
141
    /***** Ht (Mb,Ij) <--- Cje * WMbeI *****/
 
142
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 22, 24, 22, 24, 0, "Z (Mj,Ib)");
 
143
    dpd_buf4_init(&W, CC3_HET1, 0, 24, 24, 24, 24, 0, "CC3 WMbeJ (Me,Jb)");
 
144
    dpd_contract424(&W, &Cme, &Z, 1, 1, 1, 1.0, 0.0);
 
145
    dpd_buf4_close(&W);
 
146
    dpd_buf4_sort_axpy(&Z, CC3_HC1ET1, psrq, 24, 22, "Ht_WMbIj (Mb,Ij)", -1);
 
147
    dpd_buf4_close(&Z);
 
148
 
 
149
    /***** Ht (mB,iJ) <--- Cie * WmBiJ *****/
 
150
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 10, 20, 10, 20, 0, "Z (mi,JB)");
 
151
    dpd_buf4_init(&W, CC3_HET1, 0, 30, 20, 30, 20, 0, "CC3 WmBeJ (me,JB)");
 
152
    dpd_contract424(&W, &Cme, &Z, 1, 1, 1, 1.0, 0.0);
 
153
    dpd_buf4_close(&W);
 
154
    dpd_buf4_sort_axpy(&Z, CC3_HC1ET1, psqr, 27, 23, "Ht_WmBiJ (mB,iJ)", 1);
 
155
    dpd_buf4_close(&Z);
 
156
 
 
157
    /***** Ht (mB,iJ) <--- CJE * WmEiB *****/
 
158
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 23, 27, 23, 27, 0, "Z (mJ,iB)");
 
159
    dpd_buf4_init(&W, CC3_HET1, 0, 27, 27, 27, 27, 0, "CC3 WmBEj (mE,jB)");
 
160
    dpd_contract424(&W, &CME, &Z, 1, 1, 1, 1.0, 0.0);
 
161
    dpd_buf4_close(&W);
 
162
    dpd_buf4_sort_axpy(&Z, CC3_HC1ET1, psrq, 27, 23, "Ht_WmBiJ (mB,iJ)", -1);
 
163
    dpd_buf4_close(&Z);
 
164
 
 
165
 
 
166
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 20, 2, 20, 2, 0, "Ht_WMBIJ (MB,I>J)");
 
167
    dpd_buf4_sort(&Ht, CC3_HC1ET1, rspq, 2, 20, "Ht_WMBIJ (I>J,MB)");
 
168
    dpd_buf4_close(&Ht);
 
169
 
 
170
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 30, 12, 30, 12, 0, "Ht_Wmbij (mb,i>j)");
 
171
    dpd_buf4_sort(&Ht, CC3_HC1ET1, rspq, 12, 30, "Ht_Wmbij (i>j,mb)");
 
172
    dpd_buf4_close(&Ht);
 
173
 
 
174
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 24, 22, 24, 22, 0, "Ht_WMbIj (Mb,Ij)");
 
175
    dpd_buf4_sort(&Ht, CC3_HC1ET1, rspq, 22, 24, "Ht_WMbIj (Ij,Mb)");
 
176
    dpd_buf4_close(&Ht);
 
177
 
 
178
    dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 27, 23, 27, 23, 0, "Ht_WmBiJ (mB,iJ)");
 
179
    dpd_buf4_sort(&Ht, CC3_HC1ET1, rspq, 23, 27, "Ht_WmBiJ (iJ,mB)");
 
180
    dpd_buf4_close(&Ht);
 
181
 
 
182
 
 
183
    /************ TEST *************/
 
184
 
 
185
    /*
 
186
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 0, 20, 2, 20, 0, "Ht_WMBIJ (I>J,MB)");
 
187
    dot = dpd_buf4_dot_self(&W);
 
188
    dpd_buf4_close(&W);
 
189
    fprintf(outfile,"\t<WMBIJ (I>J,MB)|WMBIJ> = %15.10lf\n", dot);
 
190
 
 
191
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 10, 30, 12, 30, 0, "Ht_Wmbij (i>j,mb)");
 
192
    dot = dpd_buf4_dot_self(&W);
 
193
    dpd_buf4_close(&W);
 
194
    fprintf(outfile,"\t<Wmbij (i>j,mb)|Wmbij> = %15.10lf\n", dot);
 
195
 
 
196
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 22, 24, 22, 24, 0, "Ht_WMbIj (Ij,Mb)");
 
197
    dot = dpd_buf4_dot_self(&W);
 
198
    dpd_buf4_close(&W);
 
199
    fprintf(outfile,"\t<WMbIj (Ij,Mb)|WMbIj> = %15.10lf\n", dot);
 
200
 
 
201
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 23, 27, 23, 27, 0, "Ht_WmBiJ (iJ,mB)");
 
202
    dot = dpd_buf4_dot_self(&W);
 
203
    dpd_buf4_close(&W);
 
204
    fprintf(outfile,"\t<WmBiJ (iJ,mB)|WmBiJ> = %15.10lf\n", dot);
 
205
    */
 
206
 
 
207
    dpd_file2_close(&CME);
 
208
    dpd_file2_close(&Cme);
 
209
  }
 
210
 
 
211
  return;
 
212
}
 
213
 
 
214
void HC1ET1_Wabei(int i, int C_irr)
 
215
{
 
216
  double dot;
 
217
  dpdfile2 CME, Cme, tIA, tia;
 
218
  dpdbuf4 Ht, Z, Z1, Z2, Z3, B, C, D, E, F, W, X;
 
219
 
 
220
  char CME_lbl[32], Cme_lbl[32];
 
221
  sprintf(CME_lbl, "%s %d", "CME", i);
 
222
  sprintf(Cme_lbl, "%s %d", "Cme", i);
 
223
 
 
224
  if (params.ref == 1) { /** ROHF **/
 
225
    dpd_file2_init(&CME, EOM_CME, C_irr, 0, 1, CME_lbl);
 
226
    dpd_file2_init(&Cme, EOM_Cme, C_irr, 0, 1, Cme_lbl);
 
227
 
 
228
    dpd_file2_close(&CME);
 
229
    dpd_file2_close(&Cme);
 
230
  }
 
231
  else if (params.ref == 2) { /** UHF **/
 
232
    dpd_file2_init(&CME, EOM_CME, C_irr, 0, 1, CME_lbl);
 
233
    dpd_file2_init(&Cme, EOM_Cme, C_irr, 2, 3, Cme_lbl);
 
234
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
 
235
    dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
 
236
 
 
237
 
 
238
    /**** Term I ****/
 
239
 
 
240
    /***** Ht_WABEI <--- -P(A/B) CMA * WMBEI *****/
 
241
 
 
242
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 5, 21, 5, 21, 0, "Z (AB,EI)");
 
243
    dpd_buf4_init(&W, CC3_HET1, 0, 20, 21, 20, 21, 0, "CC3 WMBEJ (MB,EJ)");
 
244
    dpd_contract244(&CME, &W, &Z, 0, 0, 0, 1.0, 0.0);
 
245
    dpd_buf4_close(&W);
 
246
 
 
247
    dpd_buf4_sort(&Z, CC_TMP0, qprs, 7, 21, "Ht_WABEI (A>B,EI)");
 
248
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 21, 7, 21, 0, "Ht_WABEI (A>B,EI)");
 
249
    dpd_buf4_axpy(&Z, &Ht, -1);
 
250
    dpd_buf4_close(&Z);
 
251
    dpd_buf4_close(&Ht);
 
252
 
 
253
    /***** Ht_Wabei <--- Xbaei <--- -P(a/b) Zabei <-- Cma * Wmbei *****/
 
254
 
 
255
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 15, 31, 15, 31, 0, "Z (ab,ei)");
 
256
    dpd_buf4_init(&W, CC3_HET1, 0, 30, 31, 30, 31, 0, "CC3 Wmbej (mb,ej)");
 
257
    dpd_contract244(&Cme, &W, &Z, 0, 0, 0, 1.0, 0.0);
 
258
    dpd_buf4_close(&W);
 
259
 
 
260
    dpd_buf4_sort(&Z, CC_TMP0, qprs, 17, 31, "Ht_Wabei (a>b,ei)");
 
261
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 15, 31, 17, 31, 0, "Ht_Wabei (a>b,ei)");
 
262
    dpd_buf4_axpy(&Z, &Ht, -1);
 
263
    dpd_buf4_close(&Z);
 
264
    dpd_buf4_close(&Ht);
 
265
 
 
266
    /***** Ht_WAbEi <--- -CMA * WMbEi *****/
 
267
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 28, 26, 28, 26, 0, "Ht_WAbEi (Ab,Ei)");
 
268
    dpd_buf4_init(&W, CC3_HET1, 0, 24, 26, 24, 26, 0, "CC3 WMbEj (Mb,Ej)");
 
269
    dpd_contract244(&CME, &W, &Ht, 0, 0, 0, -1.0, 0.0);
 
270
    dpd_buf4_close(&W);
 
271
    dpd_buf4_close(&Ht);
 
272
 
 
273
    /***** Ht_WAbEi <--- WAmEi * Cmb *****/
 
274
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 26, 28, 26, 28, 0, "Ht_WAbEi (Ei,Ab)");
 
275
    dpd_buf4_init(&W, CC3_HET1, 0, 26, 26, 26, 26, 0, "CC3 WmBEj (Bm,Ej)");
 
276
    dpd_contract424(&W, &Cme, &Ht, 1, 0, 0, 1.0, 0.0);
 
277
    dpd_buf4_close(&W);
 
278
    dpd_buf4_close(&Ht);
 
279
 
 
280
    /***** Ht_WaBeI <--- -Cma * WmBeI *****/
 
281
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 29, 25, 29, 25, 0, "Ht_WaBeI (aB,eI)");
 
282
    dpd_buf4_init(&W, CC3_HET1, 0, 27, 25, 27, 25, 0, "CC3 WmBeJ (mB,eJ)");
 
283
    dpd_contract244(&Cme, &W, &Ht, 0, 0, 0, -1.0, 0.0);
 
284
    dpd_buf4_close(&W);
 
285
    dpd_buf4_close(&Ht);
 
286
 
 
287
    /***** Ht_WaBeI <--- WaMeI * CMB *****/
 
288
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 25, 29, 25, 29, 0, "Ht_WaBeI (eI,aB)");
 
289
    dpd_buf4_init(&W, CC3_HET1, 0, 25, 25, 25, 25, 0, "CC3 WMbeJ (bM,eJ)");
 
290
    dpd_contract424(&W, &CME, &Ht, 1, 0, 0, 1.0, 0.0);
 
291
    dpd_buf4_close(&W);
 
292
    dpd_buf4_close(&Ht);
 
293
 
 
294
    /**** Term II ****/
 
295
 
 
296
    /***** Ht_WABEI <--- <AB||EF> * CIF *****/
 
297
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 7, 21, 7, 21, 0, "Ht_WABEI (A>B,EI)");
 
298
    dpd_buf4_init(&B, CC_BINTS, 0, 7, 5, 5, 5, 1, "B <AB|CD>");
 
299
    dpd_contract424(&B, &CME, &Ht, 3, 1, 0, 1.0, 1.0);
 
300
    dpd_buf4_close(&B);
 
301
    dpd_buf4_close(&Ht);
 
302
 
 
303
 
 
304
    /***** Ht_Wabei <--- <ab||ef> * Cif *****/
 
305
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 17, 31, 17, 31, 0, "Ht_Wabei (a>b,ei)");
 
306
    dpd_buf4_init(&B, CC_BINTS, 0, 17, 15, 15, 15, 1, "B <ab|cd>");
 
307
    dpd_contract424(&B, &Cme, &Ht, 3, 1, 0, 1.0, 1.0);
 
308
    dpd_buf4_close(&B);
 
309
    dpd_buf4_close(&Ht);
 
310
 
 
311
    /***** HAbEi <--- <Ab|Ef> * Cif *****/
 
312
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 28, 26, 28, 26, 0, "Ht_WAbEi (Ab,Ei)");
 
313
    dpd_buf4_init(&B, CC_BINTS, 0, 28, 28, 28, 28, 0, "B <Ab|Cd>");
 
314
    dpd_contract424(&B, &Cme, &Ht, 3, 1, 0, 1.0, 1.0);
 
315
    dpd_buf4_close(&B);
 
316
    dpd_buf4_close(&Ht);
 
317
 
 
318
    /***** HaBeI <--- C[I][F] * <aB|eF>  *****/
 
319
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 24, 28, 24, 28, 0, "Z (Ie,Ba)");
 
320
    dpd_buf4_init(&B, CC_BINTS, 0, 28, 28, 28, 28, 0, "B <Ab|Cd>");
 
321
    dpd_contract244(&CME, &B, &Z, 1, 0, 0, 1, 0);
 
322
    dpd_buf4_close(&B);
 
323
    dpd_buf4_sort_axpy(&Z, CC_TMP0, qpsr, 25, 29, "Ht_WaBeI (eI,aB)", 1);
 
324
    dpd_buf4_close(&Z);
 
325
 
 
326
 
 
327
    /** term III **/
 
328
 
 
329
    /** H( A>B,EI) <--- -P(A/B)( <AM||EF>*C[I][F]*t1[M][B] ) **/
 
330
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 20, 21, 20, 21, 0, "Z (MA,EI)");
 
331
    dpd_buf4_init(&F, CC_FINTS, 0, 20, 5, 20, 5, 1, "F <IA|BC>");
 
332
    dpd_contract424(&F, &CME, &Z, 3, 1, 0, 1, 0);
 
333
    dpd_buf4_close(&F);
 
334
 
 
335
    dpd_buf4_init(&Z1, CC_TMP0, C_irr, 5, 21, 5, 21, 0, "Z1(BA,EI)");
 
336
    dpd_contract244(&tIA, &Z, &Z1, 0, 0, 0, 1.0, 0.0);
 
337
    dpd_buf4_close(&Z);
 
338
 
 
339
    dpd_buf4_sort_axpy(&Z1, CC_TMP0, qprs, 7, 21, "Ht_WABEI (A>B,EI)", 1);
 
340
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 21, 7, 21, 0, "Ht_WABEI (A>B,EI)");
 
341
    dpd_buf4_axpy(&Z1, &Ht, -1);
 
342
    dpd_buf4_close(&Ht);
 
343
    dpd_buf4_close(&Z1);
 
344
 
 
345
 
 
346
    /** H(a>b,ei) <--- -P(a/b)( <am||ef>*C[i][f]*t1[m][b] ) **/
 
347
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 30, 31, 30, 31, 0, "Z (ma,ei)");
 
348
    dpd_buf4_init(&F, CC_FINTS, 0, 30, 15, 30, 15, 1, "F <ia|bc>");
 
349
    dpd_contract424(&F, &Cme, &Z, 3, 1, 0, 1, 0);
 
350
    dpd_buf4_close(&F);
 
351
 
 
352
    dpd_buf4_init(&Z1, CC_TMP0, C_irr, 15, 31, 15, 31, 0, "Z1(ba,ei)");
 
353
    dpd_contract244(&tia, &Z, &Z1, 0, 0, 0, 1.0, 0.0);
 
354
    dpd_buf4_close(&Z);
 
355
 
 
356
    dpd_buf4_sort_axpy(&Z1, CC_TMP0, qprs, 17, 31, "Ht_Wabei (a>b,ei)", 1);
 
357
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 15, 31, 17, 31, 0, "Ht_Wabei (a>b,ei)");
 
358
    dpd_buf4_axpy(&Z1, &Ht, -1);
 
359
    dpd_buf4_close(&Ht);
 
360
    dpd_buf4_close(&Z1);
 
361
 
 
362
    /** H(Ab,Ei) <--- -<Am|Ef>*C[i][f]*t1[m][b] **/
 
363
 
 
364
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 26, 26, 26, 26, 0, "Z(Am,Ei)");
 
365
    dpd_buf4_init(&F, CC_FINTS, 0, 26, 28, 26, 28, 0, "F <Ai|Bc>");
 
366
    dpd_contract424(&F, &Cme, &Z, 3, 1, 0, 1, 0);
 
367
    dpd_buf4_close(&F);
 
368
 
 
369
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 26, 28, 26, 28, 0, "Ht_WAbEi (Ei,Ab)");
 
370
    dpd_contract424(&Z, &tia, &Ht, 1, 0, 0, -1, 1);
 
371
    dpd_buf4_close(&Z);
 
372
    dpd_buf4_close(&Ht);
 
373
 
 
374
    /** Ht(Ab,Ei) <--- -<Mb|Ef>*C[i][f]*t1[M][A] **/
 
375
 
 
376
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 24, 26, 24, 26, 0, "Z(Mb,Ei)");
 
377
    dpd_buf4_init(&F, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
 
378
    dpd_contract424(&F, &Cme, &Z, 3, 1, 0, 1, 0);
 
379
    dpd_buf4_close(&F);
 
380
 
 
381
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 28, 26, 28, 26, 0, "Ht_WAbEi (Ab,Ei)");
 
382
    dpd_contract244(&tIA, &Z, &Ht, 0, 0, 0, -1, 1);
 
383
    dpd_buf4_close(&Z);
 
384
    dpd_buf4_close(&Ht);
 
385
 
 
386
    /** Ht(aB,eI) <--- -<aM|eF>*C[I][F]*t1[M][B] **/
 
387
 
 
388
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 25, 25, 25, 25, 0, "Z(aM,eI)");
 
389
    dpd_buf4_init(&F, CC_FINTS, 0, 25, 29, 25, 29, 0, "F <aI|bC>");
 
390
    dpd_contract424(&F, &CME, &Z, 3, 1, 0, 1, 0);
 
391
    dpd_buf4_close(&F);
 
392
 
 
393
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 25, 29, 25, 29, 0, "Ht_WaBeI (eI,aB)");
 
394
    dpd_contract424(&Z, &tIA, &Ht, 1, 0, 0, -1, 1);
 
395
    dpd_buf4_close(&Z);
 
396
    dpd_buf4_close(&Ht);
 
397
 
 
398
    /** Ht(aB,eI) <--- -C[I][F] * <mB|eF> * t1[m][a] **/
 
399
 
 
400
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 27, 25, 27, 25, 0, "Z(mB,eI)");
 
401
    dpd_buf4_init(&F, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
 
402
    dpd_contract424(&F, &CME, &Z, 3, 1, 0, 1, 0);
 
403
    dpd_buf4_close(&F);
 
404
 
 
405
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 29, 25, 29, 25, 0, "Ht_WaBeI (aB,eI)");
 
406
    dpd_contract244(&tia, &Z, &Ht, 0, 0, 0, -1, 1);
 
407
    dpd_buf4_close(&Z);
 
408
    dpd_buf4_close(&Ht);
 
409
 
 
410
 
 
411
    /** term 6 **/
 
412
 
 
413
    /** Ht(A>B,EI) <---  0.5 * P(A/B) <MN||EF> * t1[M][A]*C[I][F]*t1[N][B] **/
 
414
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 2, 21, 2, 21, 0, "Z (M>N,EI)");
 
415
    dpd_buf4_init(&D, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <IJ||AB> (I>J,AB)");
 
416
    dpd_contract424(&D, &CME, &Z, 3, 1, 0, 1, 0);
 
417
    dpd_buf4_close(&D);
 
418
    dpd_buf4_close(&Z);
 
419
 
 
420
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 0, 21, 2, 21, 0, "Z (M>N,EI)");
 
421
    dpd_buf4_init(&Z1, CC_TMP0, C_irr, 21, 20, 21, 20, 0, "Z1 (EI,MB)");
 
422
    dpd_contract424(&Z, &tIA, &Z1, 1, 0, 0, 1, 0);
 
423
    dpd_buf4_close(&Z);
 
424
 
 
425
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 21, 7, 21, 0, "Ht_WABEI (A>B,EI)");
 
426
    dpd_contract244(&tIA, &Z1, &Ht, 0, 2, 0, 1, 1);
 
427
    dpd_buf4_close(&Ht);
 
428
    dpd_buf4_close(&Z1);
 
429
 
 
430
    /** W(a>b,ei) <---  0.5 * P(a/b) <nm||ef> * t1[m][b]*C[i][f]*t1[n][a] **/
 
431
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 12, 31, 12, 31, 0, "Z (m>n,ei)");
 
432
    dpd_buf4_init(&D, CC_DINTS, 0, 12, 15, 12, 15, 0, "D <ij||ab> (i>j,ab)");
 
433
    dpd_contract424(&D, &Cme, &Z, 3, 1, 0, 1, 0);
 
434
    dpd_buf4_close(&D);
 
435
    dpd_buf4_close(&Z);
 
436
 
 
437
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 10, 31, 12, 31, 0, "Z (m>n,ei)");
 
438
    dpd_buf4_init(&Z1, CC_TMP0, C_irr, 31, 30, 31, 30, 0, "Z1 (ei,mb)");
 
439
    dpd_contract424(&Z, &tia, &Z1, 1, 0, 0, 1, 0);
 
440
    dpd_buf4_close(&Z);
 
441
 
 
442
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 15, 31, 17, 31, 0, "Ht_Wabei (a>b,ei)");
 
443
    dpd_contract244(&tia, &Z1, &Ht, 0, 2, 0, 1, 1);
 
444
    dpd_buf4_close(&Ht);
 
445
    dpd_buf4_close(&Z1);
 
446
 
 
447
 
 
448
    /** W(Ab,Ei) <---  <Nm|Ef> * t1[m][b]*C[i][f]*t1[N][A] **/
 
449
 
 
450
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 22, 26, 22, 26, 0, "Z (Nm,Ei)");
 
451
    dpd_buf4_init(&D, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
 
452
    dpd_contract424(&D, &Cme, &Z, 3, 1, 0, 1, 0);
 
453
    dpd_buf4_close(&D);
 
454
 
 
455
    dpd_buf4_init(&Z1, CC_TMP0, C_irr, 26, 24, 26, 24, 0, "Z1 (Ei,Nb)");
 
456
    dpd_contract424(&Z, &tia, &Z1, 1, 0, 0, 1, 0);
 
457
    dpd_buf4_close(&Z);
 
458
 
 
459
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 28, 26, 28, 26, 0, "Ht_WAbEi (Ab,Ei)");
 
460
    dpd_contract244(&tIA, &Z1, &Ht, 0, 2, 0, 1, 1);
 
461
    dpd_buf4_close(&Ht);
 
462
 
 
463
    /** W(aB,eI) <---  <nM|eF> * t1[M][B]*C[I][F]*t1[n][a] **/
 
464
 
 
465
    dpd_buf4_init(&Z, CC_TMP0, C_irr, 23, 25, 23, 25, 0, "Z (nM,eI)");
 
466
    dpd_buf4_init(&D, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
 
467
    dpd_contract424(&D, &CME, &Z, 3, 1, 0, 1, 0);
 
468
    dpd_buf4_close(&D);
 
469
 
 
470
    dpd_buf4_init(&Z1, CC_TMP0, C_irr, 25, 27, 25, 27, 0, "Z1 (eI,nB)");
 
471
    dpd_contract424(&Z, &tIA, &Z1, 1, 0, 0, 1, 0);
 
472
    dpd_buf4_close(&Z);
 
473
 
 
474
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 29, 25, 29, 25, 0, "Ht_WaBeI (aB,eI)");
 
475
    dpd_contract244(&tia, &Z1, &Ht, 0, 2, 0, 1, 1);
 
476
    dpd_buf4_close(&Ht);
 
477
 
 
478
 
 
479
    dpd_file2_close(&CME);
 
480
    dpd_file2_close(&Cme);
 
481
    dpd_file2_close(&tIA);
 
482
    dpd_file2_close(&tia);
 
483
 
 
484
 
 
485
    /* combine W(Ab,Ei) and W(Ei,Ab)  */
 
486
 
 
487
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 28, 26, 28, 26, 0, "Ht_WAbEi (Ab,Ei)");
 
488
    dpd_buf4_sort_axpy(&Ht, CC_TMP0, rspq, 26, 28, "Ht_WAbEi (Ei,Ab)", 1); 
 
489
    dpd_buf4_close(&Ht);
 
490
 
 
491
    dpd_buf4_init(&Ht, CC_TMP0, C_irr, 29, 25, 29, 25, 0, "Ht_WaBeI (aB,eI)");
 
492
    dpd_buf4_sort_axpy(&Ht, CC_TMP0, rspq, 25, 29, "Ht_WaBeI (eI,aB)", 1); 
 
493
    dpd_buf4_close(&Ht);
 
494
 
 
495
    /* sort to Wabei (ei,ab) */
 
496
    dpd_buf4_init(&W, CC_TMP0, C_irr, 7, 21, 7, 21, 0, "Ht_WABEI (A>B,EI)");
 
497
    dpd_buf4_sort(&W, CC_TMP2, rspq, 21, 7, "Ht_WABEI (EI,A>B)");
 
498
    dpd_buf4_close(&W);
 
499
    dpd_buf4_init(&W, CC_TMP0, C_irr, 17, 31, 17, 31, 0, "Ht_Wabei (a>b,ei)");
 
500
    dpd_buf4_sort(&W, CC_TMP2, rspq, 31, 17, "Ht_Wabei (ei,a>b)");
 
501
    dpd_buf4_close(&W);
 
502
 
 
503
    /* sort to Wabei (ie,ba) */
 
504
    dpd_buf4_init(&W, CC_TMP2, C_irr, 21, 7, 21, 7, 0, "Ht_WABEI (EI,A>B)");
 
505
    dpd_buf4_sort(&W, CC3_HC1ET1, qprs, 20, 7, "Ht_WABEI (IE,B>A)");
 
506
    dpd_buf4_close(&W);
 
507
    dpd_buf4_init(&W, CC3_HC1ET1, C_irr, 20, 7, 20, 7, 0, "Ht_WABEI (IE,B>A)");
 
508
    dpd_buf4_scm(&W, -1.0);
 
509
    dpd_buf4_close(&W);
 
510
 
 
511
    dpd_buf4_init(&W, CC_TMP2, C_irr, 31, 17, 31, 17, 0, "Ht_Wabei (ei,a>b)");
 
512
    dpd_buf4_sort(&W, CC3_HC1ET1, qprs, 30, 17, "Ht_Wabei (ie,b>a)");
 
513
    dpd_buf4_close(&W);
 
514
    dpd_buf4_init(&W, CC3_HC1ET1, C_irr, 30, 17, 30, 17, 0, "Ht_Wabei (ie,b>a)");
 
515
    dpd_buf4_scm(&W, -1.0);
 
516
    dpd_buf4_close(&W);
 
517
 
 
518
    dpd_buf4_init(&W, CC_TMP0, C_irr, 26, 28, 26, 28, 0, "Ht_WAbEi (Ei,Ab)");
 
519
    dpd_buf4_sort(&W, CC3_HC1ET1, qpsr, 27, 29, "Ht_WAbEi (iE,bA)");
 
520
    dpd_buf4_close(&W);
 
521
 
 
522
    dpd_buf4_init(&W, CC_TMP0, C_irr, 25, 29, 25, 29, 0, "Ht_WaBeI (eI,aB)");
 
523
    dpd_buf4_sort(&W, CC3_HC1ET1, qpsr, 24, 28, "Ht_WaBeI (Ie,Ba)");
 
524
    dpd_buf4_close(&W);
 
525
 
 
526
 
 
527
    /************ TEST *************/
 
528
    /*
 
529
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 20, 5, 20, 7, 0, "Ht_WABEI (IE,B>A)");
 
530
    dot = dpd_buf4_dot_self(&W);
 
531
    dpd_buf4_close(&W);
 
532
    fprintf(outfile,"\t<WABEI(IE,B>A)|WABEI> = %15.10lf\n", dot);
 
533
 
 
534
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 30, 15, 30, 17, 0, "Ht_Wabei (ie,b>a)");
 
535
    dot = dpd_buf4_dot_self(&W);
 
536
    dpd_buf4_close(&W);
 
537
    fprintf(outfile,"\t<Wabei (ie,b>a)|Wabei> = %15.10lf\n", dot);
 
538
 
 
539
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 27, 29, 27, 29, 0, "Ht_WAbEi (iE,bA)");
 
540
    dot = dpd_buf4_dot_self(&W);
 
541
    dpd_buf4_close(&W);
 
542
    fprintf(outfile,"\t<WAbEi (iE,bA)|WAbEi> = %15.10lf\n", dot);
 
543
 
 
544
    dpd_buf4_init(&W, CC3_HC1ET1, 0, 24, 28, 24, 28, 0, "Ht_WaBeI (Ie,Ba)");
 
545
    dot = dpd_buf4_dot_self(&W);
 
546
    dpd_buf4_close(&W);
 
547
    fprintf(outfile,"\t<WaBeI (Ie,Ba)|WaBeI> = %15.10lf\n", dot);
 
548
    */
 
549
 
 
550
  }
 
551
 
 
552
  return;
 
553
}
 
554
 
 
555
void HC1ET1_Wmbij_rhf(int i, int C_irr)
 
556
{
 
557
  double dot;
 
558
  dpdbuf4 C, D, E, F, Ht, W, W1, X, Z;
 
559
  dpdfile2 CME;
 
560
  char CME_lbl[32];
 
561
  sprintf(CME_lbl, "%s %d", "CME", i);
 
562
 
 
563
  dpd_file2_init(&CME, EOM_CME, C_irr, 0, 1, CME_lbl);
 
564
 
 
565
  /***** Ht (Mb,Ij) <--- -WMnIj * Cnb *****/
 
566
  dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 10, 0, 10, 0, 0, "Ht_WMbIj (Mb,Ij)");
 
567
  dpd_buf4_init(&W, CC3_HET1, 0, 0, 0, 0, 0, 0, "CC3 WMnIj (Mn,Ij)");
 
568
  dpd_contract424(&W, &CME, &Ht, 1, 0, 1, -1.0, 0.0);
 
569
  dpd_buf4_close(&W);
 
570
  dpd_buf4_close(&Ht);
 
571
  
 
572
  /***** Ht (Mb,Ij) <--- CIE * WMbEj *****/ 
 
573
  dpd_buf4_init(&Z, CC_TMP0, C_irr, 0, 10, 0, 10, 0, "Z (MI,jb)");
 
574
  dpd_buf4_init(&W, CC3_HET1, 0, 10, 10, 10, 10, 0, "CC3 WMbEj (ME,jb)");
 
575
  dpd_contract424(&W, &CME, &Z, 1, 1, 1, 1.0, 0.0);
 
576
  dpd_buf4_close(&W);
 
577
  dpd_buf4_sort_axpy(&Z, CC3_HC1ET1, psqr, 10, 0, "Ht_WMbIj (Mb,Ij)", 1);
 
578
  dpd_buf4_close(&Z);
 
579
    
 
580
  /***** Ht (Mb,Ij) <--- Cje * WMbeI *****/
 
581
  dpd_buf4_init(&Z, CC_TMP0, C_irr, 0, 10, 0, 10, 0, "Z (Mj,Ib)");
 
582
  dpd_buf4_init(&W, CC3_HET1, 0, 10, 10, 10, 10, 0, "CC3 WMbeJ (Me,Jb)");
 
583
  dpd_contract424(&W, &CME, &Z, 1, 1, 1, 1.0, 0.0);
 
584
  dpd_buf4_close(&W);
 
585
  dpd_buf4_sort_axpy(&Z, CC3_HC1ET1, psrq, 10, 0, "Ht_WMbIj (Mb,Ij)", -1);
 
586
  dpd_buf4_close(&Z);
 
587
 
 
588
  dpd_buf4_init(&Ht, CC3_HC1ET1, C_irr, 10, 0, 10, 0, 0, "Ht_WMbIj (Mb,Ij)");
 
589
  dpd_buf4_sort(&Ht, CC3_HC1ET1, rspq, 0, 10, "Ht_WMbIj (Ij,Mb)");
 
590
  dpd_buf4_close(&Ht);
 
591
  
 
592
  dpd_file2_close(&CME);
 
593
 
 
594
  return;
 
595
}
 
596
 
 
597
void HC1ET1_Wabei_rhf(int i, int C_irr)
 
598
{
 
599
  double dot;
 
600
  dpdfile2 CME, tIA;
 
601
  dpdbuf4 Ht, Z, Z1, Z2, Z3, B, C, D, E, F, W, X;
 
602
  char CME_lbl[32];
 
603
  sprintf(CME_lbl, "%s %d", "CME", i);
 
604
 
 
605
  dpd_file2_init(&CME, EOM_CME, C_irr, 0, 1, CME_lbl);
 
606
  dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
 
607
 
 
608
  /***** Ht_WAbEi <--- -CMA * WMbEi *****/
 
609
  dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 11, 5, 11, 0, "Ht_WAbEi (Ab,Ei)");
 
610
  dpd_buf4_init(&W, CC3_HET1, 0, 10, 11, 10, 11, 0, "CC3 WMbEj (Mb,Ej)");
 
611
  dpd_contract244(&CME, &W, &Ht, 0, 0, 0, -1.0, 0.0);
 
612
  dpd_buf4_close(&W);
 
613
  dpd_buf4_close(&Ht);
 
614
 
 
615
  /***** Ht_WAbEi <--- WAmEi * Cmb *****/
 
616
  dpd_buf4_init(&Ht, CC_TMP0, C_irr, 11, 5, 11, 5, 0, "Ht_WAbEi (Ei,Ab)");
 
617
  dpd_buf4_init(&W, CC3_HET1, 0, 11, 11, 11, 11, 0, "CC3 WMbeJ (bM,eJ)");
 
618
  dpd_contract424(&W, &CME, &Ht, 1, 0, 0, 1.0, 0.0);
 
619
  dpd_buf4_close(&W);
 
620
  dpd_buf4_close(&Ht);
 
621
 
 
622
  /***** HAbEi <--- <Ab|Ef> * Cif *****/
 
623
  dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 11, 5, 11, 0, "Ht_WAbEi (Ab,Ei)");
 
624
  dpd_buf4_init(&B, CC_BINTS, 0, 5, 5, 5, 5, 0, "B <ab|cd>");
 
625
  dpd_contract424(&B, &CME, &Ht, 3, 1, 0, 1.0, 1.0);
 
626
  dpd_buf4_close(&B);
 
627
  dpd_buf4_close(&Ht);
 
628
 
 
629
  /** H(Ab,Ei) <--- -<Am|Ef>*C[i][f]*t1[m][b] **/
 
630
  dpd_buf4_init(&Z, CC_TMP0, C_irr, 11, 11, 11, 11, 0, "Z(Am,Ei)");
 
631
  dpd_buf4_init(&F, CC_FINTS, 0, 11, 5, 11, 5, 0, "F <ai|bc>");
 
632
  dpd_contract424(&F, &CME, &Z, 3, 1, 0, 1, 0);
 
633
  dpd_buf4_close(&F);
 
634
 
 
635
  dpd_buf4_init(&Ht, CC_TMP0, C_irr, 11, 5, 11, 5, 0, "Ht_WAbEi (Ei,Ab)");
 
636
  dpd_contract424(&Z, &tIA, &Ht, 1, 0, 0, -1, 1);
 
637
  dpd_buf4_close(&Z);
 
638
  dpd_buf4_close(&Ht);
 
639
 
 
640
  /** Ht(Ab,Ei) <--- -<Mb|Ef>*C[i][f]*t1[M][A] **/
 
641
  dpd_buf4_init(&Z, CC_TMP0, C_irr, 10, 11, 10, 11, 0, "Z(Mb,Ei)");
 
642
  dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
 
643
  dpd_contract424(&F, &CME, &Z, 3, 1, 0, 1, 0);
 
644
  dpd_buf4_close(&F);
 
645
 
 
646
  dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 11, 5, 11, 0, "Ht_WAbEi (Ab,Ei)");
 
647
  dpd_contract244(&tIA, &Z, &Ht, 0, 0, 0, -1, 1);
 
648
  dpd_buf4_close(&Z);
 
649
  dpd_buf4_close(&Ht);
 
650
 
 
651
  /** W(Ab,Ei) <---  <Nm|Ef> * t1[m][b]*C[i][f]*t1[N][A] **/
 
652
  dpd_buf4_init(&Z, CC_TMP0, C_irr, 0, 11, 0, 11, 0, "Z (Nm,Ei)");
 
653
  dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
 
654
  dpd_contract424(&D, &CME, &Z, 3, 1, 0, 1, 0);
 
655
  dpd_buf4_close(&D);
 
656
 
 
657
  dpd_buf4_init(&Z1, CC_TMP0, C_irr, 11, 10, 11, 10, 0, "Z1 (Ei,Nb)");
 
658
  dpd_contract424(&Z, &tIA, &Z1, 1, 0, 0, 1, 0);
 
659
  dpd_buf4_close(&Z);
 
660
 
 
661
  dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 11, 5, 11, 0, "Ht_WAbEi (Ab,Ei)");
 
662
  dpd_contract244(&tIA, &Z1, &Ht, 0, 2, 0, 1, 1);
 
663
  dpd_buf4_close(&Ht);
 
664
 
 
665
  dpd_file2_close(&CME);
 
666
  dpd_file2_close(&tIA);
 
667
 
 
668
  /* combine W(Ab,Ei) and W(Ei,Ab)  */
 
669
  dpd_buf4_init(&Ht, CC_TMP0, C_irr, 5, 11, 5, 11, 0, "Ht_WAbEi (Ab,Ei)");
 
670
  dpd_buf4_sort_axpy(&Ht, CC_TMP0, rspq, 11, 5, "Ht_WAbEi (Ei,Ab)", 1);
 
671
  dpd_buf4_close(&Ht);
 
672
 
 
673
  /* sort to Wabei (ie,ba) */
 
674
  dpd_buf4_init(&W, CC_TMP0, C_irr, 11, 5, 11, 5, 0, "Ht_WAbEi (Ei,Ab)");
 
675
  dpd_buf4_sort(&W, CC3_HC1ET1, qpsr, 10, 5, "Ht_WAbEi (iE,bA)");
 
676
  dpd_buf4_close(&W);
 
677
 
 
678
  return;
 
679
}
 
680
 
 
681
 
 
682
}} // namespace psi::cceom