~ubuntu-branches/ubuntu/vivid/psicode/vivid

« back to all changes in this revision

Viewing changes to src/bin/cchbar/Wmnie.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2008-06-07 16:49:57 UTC
  • mfrom: (2.1.2 hardy)
  • Revision ID: james.westby@ubuntu.com-20080607164957-8pifvb133yjlkagn
Tags: 3.3.0-3
* debian/rules (DEB_MAKE_CHECK_TARGET): Do not abort test suite on
  failures.
* debian/rules (DEB_CONFIGURE_EXTRA_FLAGS): Set ${bindir} to /usr/lib/psi.
* debian/rules (install/psi3): Move psi3 file to /usr/bin.
* debian/patches/07_464867_move_executables.dpatch: New patch, add
  /usr/lib/psi to the $PATH, so that the moved executables are found.
  (closes: #464867)
* debian/patches/00list: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
**
11
11
** [cf. Gauss and Stanton, JCP 103, 3561-3577 (1995)]
12
12
**
 
13
** TDC, June 2002 
 
14
**
13
15
** The storage a naming convention for each of the four spin cases
14
16
** are as follows:
15
 
**
16
17
** Spin Case    Storage    Name
17
18
** ----------   ---------  -------
18
 
** WMNIE        (M>N,EI)   "WMNIE"
19
 
** Wmnie        (m>n,ei)   "Wmnie"
20
 
** WMnIe        (Mn,eI)    "WMnIe"
21
 
** WmNiE        (mN,Ei)    "WmNiE"
 
19
** WMNIE        (M>N,EI)   "WMNIE (M>N,EI)"
 
20
** Wmnie        (m>n,ei)   "Wmnie (m>n,ei)"
 
21
** WMnIe        (Mn,eI)    "WMnIe (Mn,eI)"
 
22
** WmNiE        (mN,Ei)    "WmNiE (mN,Ei)"
 
23
** ----------   ---------  -------
 
24
** WMNIE        (M>N,IE)   "WMNIE"
 
25
** Wmnie        (m>n,ie)   "Wmnie"
 
26
** WMnIe        (Mn,Ie)    "WMnIe"
 
27
** WmNiE        (mN,iE)    "WmNiE"
22
28
** -------------------------------
23
29
**
24
 
** TDC, June 2002 
 
30
** Labels have been changed to the above.  Also, all 8 of the above plus
 
31
** plus the following for RHF are now stored by cchbar.
 
32
** 2WMnIe - WnMIe  (Mn,Ie)  "2WMnIe - WnMIe"
 
33
** WMnIe - 2WnMIe  (Mn,Ie)  "WMnIe - 2WnMIe"
 
34
** 2WMnIe - WnMIe  (Mn,eI)  "2WMnIe - WnMIe (Mn,eI)"
 
35
** WMnIe - 2WnMIe  (Mn,eI)  "WMnIe - 2WnMIe (Mn,eI)"
 
36
** RAK, April 2004
25
37
*/
26
38
 
 
39
extern purge_Wmnie(void);
 
40
 
27
41
void Wmnie_build(void) {
28
42
  dpdbuf4 W, Wmnie, WMNIE, WMnIe, WmNiE, WMniE, WmNIe;
29
43
  dpdbuf4 E, Z;
30
44
  dpdbuf4 D, D_a;
31
45
  dpdfile2 t1, tIA, tia;
32
46
 
33
 
  if(params.ref == 0 || params.ref == 1) { /** RHF or ROHF **/
 
47
  if(params.ref == 0) { /** RHF **/
 
48
 
 
49
    dpd_buf4_init(&E, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
 
50
    dpd_buf4_copy(&E, CC_HBAR, "WMnIe");
 
51
    dpd_buf4_close(&E);
 
52
 
 
53
    /* D(Mn,Fe) * T(I,F) --> W(Mn,Ie) */
 
54
    dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
 
55
    dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
 
56
    dpd_file2_init(&t1, CC_OEI, 0, 0, 1, "tIA");
 
57
    dpd_contract244(&t1, &D, &WMnIe, 1, 2, 1, 1, 1);
 
58
    dpd_file2_close(&t1);
 
59
    dpd_buf4_close(&D);
 
60
    /* W(Mn,Ie) --> W(Mn,eI) */
 
61
    dpd_buf4_sort(&WMnIe, CC_HBAR, pqsr, 0, 11, "WMnIe (Mn,eI)");
 
62
    dpd_buf4_sort(&WMnIe, CC_HBAR, qpsr, 0, 11, "WMnIe (nM,eI)");
 
63
    dpd_buf4_close(&WMnIe);
 
64
 
 
65
    /* make spin-combinations */
 
66
    dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
 
67
    dpd_buf4_copy(&WMnIe, CC_HBAR, "WMnIe - 2WnMIe");
 
68
    dpd_buf4_copy(&WMnIe, CC_HBAR, "2WMnIe - WnMIe");
 
69
    dpd_buf4_close(&WMnIe);
 
70
 
 
71
    dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
 
72
    dpd_buf4_sort_axpy(&WMnIe, CC_HBAR, qprs, 0, 10, "WMnIe - 2WnMIe", -2.0);
 
73
    dpd_buf4_close(&WMnIe);
 
74
 
 
75
    dpd_buf4_init(&W, CC_HBAR, 0, 0, 10, 0, 10, 0, "2WMnIe - WnMIe");
 
76
    dpd_buf4_scm(&W, 2.0);
 
77
    dpd_buf4_close(&W);
 
78
    dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
 
79
    dpd_buf4_sort_axpy(&WMnIe, CC_HBAR, qprs, 0, 10, "2WMnIe - WnMIe", -1.0);
 
80
    dpd_buf4_close(&WMnIe);
 
81
 
 
82
    dpd_buf4_init(&W, CC_HBAR, 0, 0, 10, 0, 10, 0, "2WMnIe - WnMIe");
 
83
    dpd_buf4_sort(&W, CC_HBAR, pqsr, 0, 11, "2WMnIe - WnMIe (Mn,eI)");
 
84
    dpd_buf4_close(&W);
 
85
    dpd_buf4_init(&W, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe - 2WnMIe");
 
86
    dpd_buf4_sort(&W, CC_HBAR, pqsr, 0, 11, "WMnIe - 2WnMIe (Mn,eI)");
 
87
    dpd_buf4_close(&W);
 
88
 
 
89
  }
 
90
  else if(params.ref == 1) { /** ROHF **/
34
91
 
35
92
    /* E(M>N,EI) --> W(M>N,EI) */
36
93
    dpd_buf4_init(&E, CC_EINTS, 0, 2, 10, 2, 10, 0, "E <ij||ka> (i>j,ka)");
37
 
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 2, 11, "WMNIE");
38
 
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 2, 11, "Wmnie");
 
94
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 2, 11, "WMNIE (M>N,EI)");
 
95
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 2, 11, "Wmnie (m>n,ei)");
39
96
    dpd_buf4_close(&E);
40
97
 
41
 
 
42
98
    /* D(M>N,EF) * T(I,F) --> W(M>N,EI) */
43
 
    dpd_buf4_init(&WMNIE, CC_HBAR, 0, 2, 11, 2, 11, 0, "WMNIE");
 
99
    dpd_buf4_init(&WMNIE, CC_HBAR, 0, 2, 11, 2, 11, 0, "WMNIE (M>N,EI)");
44
100
    dpd_buf4_init(&D_a, CC_DINTS, 0, 2, 5, 2, 5,0, "D <ij||ab> (i>j,ab)");
45
101
    dpd_file2_init(&t1, CC_OEI, 0, 0, 1, "tIA");
46
102
    dpd_contract424(&D_a,&t1,&WMNIE, 3, 1, 0, -1, 1);
48
104
    dpd_buf4_close(&D_a);
49
105
    dpd_buf4_close(&WMNIE);
50
106
 
51
 
 
52
107
    /* D(m>n,ef) * T(i,f) --> W(m>n,ei) */
53
 
    dpd_buf4_init(&Wmnie, CC_HBAR, 0, 2, 11, 2, 11, 0, "Wmnie");
 
108
    dpd_buf4_init(&Wmnie, CC_HBAR, 0, 2, 11, 2, 11, 0, "Wmnie (m>n,ei)");
54
109
    dpd_buf4_init(&D_a, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
55
110
    dpd_file2_init(&t1, CC_OEI, 0, 0, 1, "tia");
56
111
    dpd_contract424(&D_a, &t1, &Wmnie, 3, 1, 0, -1, 1);
58
113
    dpd_buf4_close(&D_a);
59
114
    dpd_buf4_close(&Wmnie);
60
115
 
61
 
 
62
116
    dpd_buf4_init(&E, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
63
117
    dpd_buf4_copy(&E, CC_TMP0, "WMnIe (Mn,Ie)");
64
118
    dpd_buf4_copy(&E, CC_TMP1, "WmNiE (mN,iE)");
72
126
    dpd_file2_close(&t1);
73
127
    dpd_buf4_close(&D);
74
128
    /* W(Mn,Ie) --> W(Mn,eI) */
75
 
    dpd_buf4_sort(&WMnIe, CC_HBAR, pqsr, 0, 11, "WMnIe");
 
129
    dpd_buf4_sort(&WMnIe, CC_HBAR, pqsr, 0, 11, "WMnIe (Mn,eI)");
76
130
    dpd_buf4_close(&WMnIe);
77
131
 
78
132
    /* D(mN,fE) * T(i,f) --> W(mN.iE) */
83
137
    dpd_file2_close(&t1);
84
138
    dpd_buf4_close(&D);
85
139
    /* W(mN,iE) --> W(mN,Ei) */
86
 
    dpd_buf4_sort(&WmNiE, CC_HBAR, pqsr, 0, 11, "WmNiE");
 
140
    dpd_buf4_sort(&WmNiE, CC_HBAR, pqsr, 0, 11, "WmNiE (mN,Ei)");
 
141
    dpd_buf4_close(&WmNiE);
 
142
 
 
143
    purge_Wmnie();
 
144
 
 
145
    /* also put "normal" sorted versions in CC_HBAR */
 
146
    dpd_buf4_init(&WMNIE, CC_HBAR, 0, 2, 11, 2, 11, 0, "WMNIE (M>N,EI)");
 
147
    dpd_buf4_sort(&WMNIE, CC_HBAR, pqsr, 2, 10, "WMNIE");
 
148
    dpd_buf4_close(&WMNIE);
 
149
    dpd_buf4_init(&Wmnie, CC_HBAR, 0, 2, 11, 2, 11, 0, "Wmnie (m>n,ei)");
 
150
    dpd_buf4_sort(&Wmnie, CC_HBAR, pqsr, 2, 10, "Wmnie");
 
151
    dpd_buf4_close(&Wmnie);
 
152
    dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe (Mn,eI)");
 
153
    dpd_buf4_sort(&WMnIe, CC_HBAR, pqsr, 0, 10, "WMnIe");
 
154
    dpd_buf4_close(&WMnIe);
 
155
    dpd_buf4_init(&WmNiE, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE (mN,Ei)");
 
156
    dpd_buf4_sort(&WmNiE, CC_HBAR, pqsr, 0, 10, "WmNiE");
87
157
    dpd_buf4_close(&WmNiE);
88
158
  }
89
159
  else if(params.ref == 2) { /** UHF **/
93
163
 
94
164
    /* <M>N||IE> --> W(M>N,EI) */
95
165
    dpd_buf4_init(&E, CC_EINTS, 0, 2, 20, 2, 20, 0, "E <IJ||KA> (I>J,KA)");
96
 
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 2, 21, "WMNIE");
 
166
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 2, 21, "WMNIE (M>N,EI)");
97
167
    dpd_buf4_close(&E);
98
168
 
99
169
    /* <M>N||EF> T(I,F) --> W(M>N,EI) */
100
 
    dpd_buf4_init(&W, CC_HBAR, 0, 2, 21, 2, 21, 0, "WMNIE");
 
170
    dpd_buf4_init(&W, CC_HBAR, 0, 2, 21, 2, 21, 0, "WMNIE (M>N,EI)");
101
171
    dpd_buf4_init(&D, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <IJ||AB> (I>J,AB)");
102
172
    dpd_contract424(&D, &tIA, &W, 3, 1, 0, -1, 1);
103
173
    dpd_buf4_close(&D);
104
174
    dpd_buf4_close(&W);
105
175
 
106
 
 
107
176
    /* <m>n||ie> --> W(m>n,ei) */
108
177
    dpd_buf4_init(&E, CC_EINTS, 0, 12, 30, 12, 30, 0, "E <ij||ka> (i>j,ka)");
109
 
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 12, 31, "Wmnie");
 
178
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 12, 31, "Wmnie (m>n,ei)");
110
179
    dpd_buf4_close(&E);
111
180
 
112
181
    /* <m>n||ef> T(i,f) --> W(m>n,ei) */
113
 
    dpd_buf4_init(&W, CC_HBAR, 0, 12, 31, 12, 31, 0, "Wmnie");
 
182
    dpd_buf4_init(&W, CC_HBAR, 0, 12, 31, 12, 31, 0, "Wmnie (m>n,ei)");
114
183
    dpd_buf4_init(&D, CC_DINTS, 0, 12, 15, 12, 15, 0, "D <ij||ab> (i>j,ab)");
115
184
    dpd_contract424(&D, &tia, &W, 3, 1, 0, -1, 1);
116
185
    dpd_buf4_close(&D);
119
188
 
120
189
    /* <Mn|Ie> --> W(Mn,eI) */
121
190
    dpd_buf4_init(&E, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
122
 
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 22, 25, "WMnIe");
 
191
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 22, 25, "WMnIe (Mn,eI)");
123
192
    dpd_buf4_close(&E);
124
193
 
125
194
    /* Z(nM,eI) = <nM|eF> T(I,F) */
128
197
    dpd_contract424(&D, &tIA, &Z, 3, 1, 0, 1, 0);
129
198
    dpd_buf4_close(&D);
130
199
    /* Z(nM,eI) --> W(Mn,eI) */
131
 
    dpd_buf4_sort_axpy(&Z, CC_HBAR, qprs, 22, 25, "WMnIe", 1);
 
200
    dpd_buf4_sort_axpy(&Z, CC_HBAR, qprs, 22, 25, "WMnIe (Mn,eI)", 1);
132
201
    dpd_buf4_close(&Z);
133
202
 
134
 
 
135
203
    /* <mN|iE> --> W(mN,Ei) */
136
204
    dpd_buf4_init(&E, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
137
 
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 23, 26, "WmNiE");
 
205
    dpd_buf4_sort(&E, CC_HBAR, pqsr, 23, 26, "WmNiE (mN,Ei)");
138
206
    dpd_buf4_close(&E);
139
207
 
140
208
    /* Z(Nm,Ei) = <Nm|Ef> T(i,f) */
143
211
    dpd_contract424(&D, &tia, &Z, 3, 1, 0, 1, 0);
144
212
    dpd_buf4_close(&D);
145
213
    /* Z(Nm,Ei) --> W(mN,Ei) */
146
 
    dpd_buf4_sort_axpy(&Z, CC_HBAR, qprs, 23, 26, "WmNiE", 1);
 
214
    dpd_buf4_sort_axpy(&Z, CC_HBAR, qprs, 23, 26, "WmNiE (mN,Ei)", 1);
147
215
    dpd_buf4_close(&Z);
148
216
 
149
217
    dpd_file2_close(&tIA);
150
218
    dpd_file2_close(&tia);
151
219
 
 
220
    /* also put "normal" sorted versions in CC_HBAR */
 
221
    dpd_buf4_init(&WMNIE, CC_HBAR, 0, 2, 21, 2, 21, 0, "WMNIE (M>N,EI)");
 
222
    dpd_buf4_sort(&WMNIE, CC_HBAR, pqsr, 2, 20, "WMNIE");
 
223
    dpd_buf4_close(&WMNIE);
 
224
    dpd_buf4_init(&Wmnie, CC_HBAR, 0, 12, 31, 12, 31, 0, "Wmnie (m>n,ei)");
 
225
    dpd_buf4_sort(&Wmnie, CC_HBAR, pqsr, 12, 30, "Wmnie");
 
226
    dpd_buf4_close(&Wmnie);
 
227
    dpd_buf4_init(&WMnIe, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe (Mn,eI)");
 
228
    dpd_buf4_sort(&WMnIe, CC_HBAR, pqsr, 22, 24, "WMnIe");
 
229
    dpd_buf4_close(&WMnIe);
 
230
    dpd_buf4_init(&WmNiE, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE (mN,Ei)");
 
231
    dpd_buf4_sort(&WmNiE, CC_HBAR, pqsr, 23, 27, "WmNiE");
 
232
    dpd_buf4_close(&WmNiE);
152
233
  }
153
234
 
154
235
  return;