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

« back to all changes in this revision

Viewing changes to src/bin/ccdensity/onepdm.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:
21
21
** TDC, July 2002
22
22
*/
23
23
 
24
 
void onepdm(void)
 
24
void onepdm(struct RHO_Params rho_params)
25
25
{
26
26
  dpdfile2 D, T1, L1, Z;
27
27
  dpdbuf4 T2, L2;
28
 
  double trace=0.0;
 
28
  double trace=0.0, dot_AI, dot_IA, dot_ai, dot_ia;
29
29
 
30
30
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
31
31
 
32
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, "DIJ");
 
32
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
33
33
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
34
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 7, 2, 7, 0, "LIJAB");
 
34
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
35
35
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
36
36
    dpd_buf4_close(&L2);
37
37
    dpd_buf4_close(&T2); 
38
38
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
39
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LIjAb");
 
39
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
40
40
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
41
41
    dpd_buf4_close(&L2);
42
42
    dpd_buf4_close(&T2); 
43
43
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
44
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
44
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
45
45
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
46
46
    dpd_file2_close(&L1);
47
47
    dpd_file2_close(&T1);
48
48
    trace += dpd_file2_trace(&D);
49
49
    dpd_file2_close(&D);
50
50
 
51
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, "Dij");
 
51
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
52
52
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tijab");
53
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 7, 2, 7, 0, "Lijab");
 
53
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "Lijab");
54
54
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
55
55
    dpd_buf4_close(&L2);
56
56
    dpd_buf4_close(&T2);
57
57
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
58
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LiJaB");
 
58
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
59
59
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
60
60
    dpd_buf4_close(&L2);
61
61
    dpd_buf4_close(&T2);
62
62
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
63
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "Lia");
 
63
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
64
64
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
65
65
    dpd_file2_close(&L1);
66
66
    dpd_file2_close(&T1);
67
67
    trace += dpd_file2_trace(&D); 
68
68
    dpd_file2_close(&D);
69
69
 
70
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, "DAB");
71
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 2, 5, 2, 7, 0, "LIJAB");
 
70
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
 
71
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
72
72
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
73
73
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
74
74
    dpd_buf4_close(&T2);
75
75
    dpd_buf4_close(&L2);
76
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LiJaB");
 
76
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
77
77
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
78
78
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
79
79
    dpd_buf4_close(&L2);
80
80
    dpd_buf4_close(&T2);
81
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
81
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
82
82
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
83
83
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
84
84
    dpd_file2_close(&L1);
86
86
    trace += dpd_file2_trace(&D); 
87
87
    dpd_file2_close(&D);
88
88
 
89
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, "Dab");
90
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 2, 5, 2, 7, 0, "Lijab");
 
89
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.Dab_lbl);
 
90
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "Lijab");
91
91
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tijab");
92
92
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
93
93
    dpd_buf4_close(&T2);
94
94
    dpd_buf4_close(&L2);
95
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LIjAb");
 
95
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
96
96
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
97
97
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
98
98
    dpd_buf4_close(&L2);
99
99
    dpd_buf4_close(&T2);
100
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "Lia");
 
100
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
101
101
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
102
102
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
103
103
    dpd_file2_close(&L1);
105
105
    trace += dpd_file2_trace(&D); 
106
106
    dpd_file2_close(&D);
107
107
 
108
 
    fprintf(outfile, "\n\tTrace of onepdm = %20.15f\n", trace);
109
 
 
110
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
111
 
    dpd_file2_copy(&T1, CC_OEI, "DIA");
112
 
    dpd_file2_close(&T1);
113
 
 
114
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, "DIA");
115
 
 
116
 
    /* full tIA must be included in excited-state 1-pdm so anticipate that
117
 
     * this tIA term will be multiplied by R0 */
118
 
    /*
119
 
    if (!params.ground) {
120
 
      dpd_file2_scm(&D, 1.0/params.R0);
 
108
    /*fprintf(outfile, "\n\tTrace of onepdm = %20.15f\n", trace);*/
 
109
 
 
110
    /* This term is * L0 = 0 for excited states */
 
111
    if (rho_params.L_ground) {
 
112
      dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
 
113
      dpd_file2_copy(&T1, CC_OEI, rho_params.DIA_lbl);
 
114
      dpd_file2_close(&T1);
121
115
    }
122
 
    */
 
116
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
123
117
 
124
118
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tIJAB");
125
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
119
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
126
120
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
127
121
    dpd_file2_close(&L1);
128
122
    dpd_buf4_close(&T2);
129
123
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
130
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "Lia");
 
124
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
131
125
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
132
126
    dpd_file2_close(&L1);
133
127
    dpd_buf4_close(&T2);
134
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
128
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
135
129
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
136
130
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
137
131
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
141
135
    dpd_file2_close(&Z);
142
136
    /*  D(I,A) << L2(MN,EF) T2(IN,EF) T(M,A) + L2(Mn,Ef) T2(In,Ef) T(M,A) */
143
137
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
144
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 7, 2, 7, 0, "LIJAB");
 
138
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
145
139
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
146
140
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
147
141
    dpd_buf4_close(&T2);
148
142
    dpd_buf4_close(&L2);
149
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LIjAb");
 
143
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
150
144
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
151
145
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
152
146
    dpd_buf4_close(&T2);
158
152
    /* T2(MN,AF) L2(MN,EF) T(I,E) + T2(Mn,Af) L2(Mn,Ef) T(I,E) */
159
153
    dpd_file2_init(&Z, CC_TMP0, 0, 1, 1, "Z(A,E)");
160
154
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
161
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 2, 5, 2, 7, 0, "LIJAB");
 
155
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
162
156
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
163
157
    dpd_buf4_close(&L2);
164
158
    dpd_buf4_close(&T2);
165
159
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
166
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LIjAb");
 
160
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
167
161
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
168
162
    dpd_buf4_close(&L2);
169
163
    dpd_buf4_close(&T2);
173
167
    dpd_file2_close(&Z);
174
168
    dpd_file2_close(&D);
175
169
 
176
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
177
 
    dpd_file2_copy(&T1, CC_OEI, "Dia");
178
 
    dpd_file2_close(&T1);
179
 
 
180
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, "Dia");
181
 
 
182
 
    /* full tia must be included in excited-state 1-pdm so anticipate
183
 
     * that this tia term will be multiplied by R0 */
184
 
    /*
185
 
    if (!params.ground) {
186
 
      dpd_file2_scm(&D, 1.0/params.R0);
 
170
    /* This term is * L0 = 0 for excited states */
 
171
    if (rho_params.L_ground) {
 
172
      dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
 
173
      dpd_file2_copy(&T1, CC_OEI, rho_params.Dia_lbl);
 
174
      dpd_file2_close(&T1);
187
175
    }
188
 
    */
 
176
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
189
177
 
190
178
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tijab");
191
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "Lia");
 
179
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
192
180
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
193
181
    dpd_file2_close(&L1);
194
182
    dpd_buf4_close(&T2);
195
183
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
196
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
184
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
197
185
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
198
186
    dpd_file2_close(&L1);
199
187
    dpd_buf4_close(&T2);
200
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "Lia");
 
188
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
201
189
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
202
190
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(i,m)");
203
191
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
206
194
    dpd_file2_close(&T1);
207
195
    dpd_file2_close(&Z);
208
196
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(i,m)");
209
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 7, 2, 7, 0, "Lijab");
 
197
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "Lijab");
210
198
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tijab");
211
199
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
212
200
    dpd_buf4_close(&T2);
213
201
    dpd_buf4_close(&L2);
214
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LiJaB");
 
202
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
215
203
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
216
204
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
217
205
    dpd_buf4_close(&T2);
222
210
    dpd_file2_close(&T1);
223
211
    dpd_file2_init(&Z, CC_TMP0, 0, 1, 1, "Z(a,e)");
224
212
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tijab");
225
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 2, 5, 2, 7, 0, "Lijab");
 
213
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "Lijab");
226
214
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
227
215
    dpd_buf4_close(&L2);
228
216
    dpd_buf4_close(&T2);
229
217
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
230
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 5, 0, 5, 0, "LiJaB");
 
218
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
231
219
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
232
220
    dpd_buf4_close(&L2);
233
221
    dpd_buf4_close(&T2);
238
226
    dpd_file2_close(&D);
239
227
 
240
228
    /* Note that these blocks are still stored occ/vir */
241
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
242
 
    dpd_file2_copy(&L1, CC_OEI, "DAI");
243
 
    dpd_file2_close(&L1);
244
 
 
245
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "Lia");
246
 
    dpd_file2_copy(&L1, CC_OEI, "Dai");
247
 
    dpd_file2_close(&L1);
248
 
 
 
229
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
 
230
    dpd_file2_copy(&L1, CC_OEI, rho_params.DAI_lbl);
 
231
    dpd_file2_close(&L1);
 
232
 
 
233
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
 
234
    dpd_file2_copy(&L1, CC_OEI, rho_params.Dai_lbl);
 
235
    dpd_file2_close(&L1);
 
236
 
 
237
    /* Check overlaps */
 
238
    /*
 
239
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
 
240
    dot_IA = dpd_file2_dot_self(&D);
 
241
    dpd_file2_close(&D);
 
242
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
 
243
    dot_ia = dpd_file2_dot_self(&D);
 
244
    dpd_file2_close(&D);
 
245
    dpd_file2_init(&D, CC_OEI, 0, 1, 0, rho_params.DAI_lbl);
 
246
    dot_AI = dpd_file2_dot_self(&D);
 
247
    dpd_file2_close(&D);
 
248
    dpd_file2_init(&D, CC_OEI, 0, 1, 0, rho_params.Dai_lbl);
 
249
    dot_ai = dpd_file2_dot_self(&D);
 
250
    dpd_file2_close(&D);
 
251
    fprintf(outfile,"\tOverlaps of onepdm after ground-state parts added.\n");
 
252
    fprintf(outfile,"\t<DIA|DIA> = %15.10lf     <Dia|Dia> = %15.10lf\n", dot_IA, dot_ia);
 
253
    fprintf(outfile,"\t<DAI|DAI> = %15.10lf     <Dai|Dai> = %15.10lf\n", dot_AI, dot_ai);
 
254
    fprintf(outfile,"\t<Dpq|Dqp> = %15.10lf\n", dot_IA+dot_ia+dot_AI+dot_ai);
 
255
    */
249
256
  }
250
257
  else if(params.ref == 2) { /** UHF **/
251
258
 
252
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, "DIJ");
 
259
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
253
260
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
254
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 7, 2, 7, 0, "LIJAB");
 
261
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
255
262
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
256
263
    dpd_buf4_close(&L2);
257
264
    dpd_buf4_close(&T2); 
258
265
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
259
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 22, 28, 22, 28, 0, "LIjAb");
 
266
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
260
267
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
261
268
    dpd_buf4_close(&L2);
262
269
    dpd_buf4_close(&T2); 
263
270
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
264
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
271
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
265
272
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
266
273
    dpd_file2_close(&L1);
267
274
    dpd_file2_close(&T1);
268
275
    trace += dpd_file2_trace(&D);
269
276
    dpd_file2_close(&D);
270
277
 
271
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 2, "Dij");
 
278
    dpd_file2_init(&D, CC_OEI, 0, 2, 2, rho_params.Dij_lbl);
272
279
    dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 17, 12, 17, 0, "tijab");
273
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 10, 17, 12, 17, 0, "Lijab");
 
280
    dpd_buf4_init(&L2, CC_GLG, 0, 10, 17, 12, 17, 0, "Lijab");
274
281
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
275
282
    dpd_buf4_close(&L2);
276
283
    dpd_buf4_close(&T2);
277
284
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
278
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 23, 29, 23, 29, 0, "LiJaB");
 
285
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
279
286
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
280
287
    dpd_buf4_close(&L2);
281
288
    dpd_buf4_close(&T2);
282
289
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
283
 
    dpd_file2_init(&L1, CC_OEI, 0, 2, 3, "Lia");
 
290
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
284
291
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
285
292
    dpd_file2_close(&L1);
286
293
    dpd_file2_close(&T1);
287
294
    trace += dpd_file2_trace(&D); 
288
295
    dpd_file2_close(&D);
289
296
 
290
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, "DAB");
291
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 2, 5, 2, 7, 0, "LIJAB");
 
297
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
 
298
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
292
299
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
293
300
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
294
301
    dpd_buf4_close(&T2);
295
302
    dpd_buf4_close(&L2);
296
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 23, 29, 23, 29, 0, "LiJaB");
 
303
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
297
304
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
298
305
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
299
306
    dpd_buf4_close(&L2);
300
307
    dpd_buf4_close(&T2);
301
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
308
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
302
309
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
303
310
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
304
311
    dpd_file2_close(&L1);
306
313
    trace += dpd_file2_trace(&D); 
307
314
    dpd_file2_close(&D);
308
315
 
309
 
    dpd_file2_init(&D, CC_OEI, 0, 3, 3, "Dab");
310
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 12, 15, 12, 17, 0, "Lijab");
 
316
    dpd_file2_init(&D, CC_OEI, 0, 3, 3, rho_params.Dab_lbl);
 
317
    dpd_buf4_init(&L2, CC_GLG, 0, 12, 15, 12, 17, 0, "Lijab");
311
318
    dpd_buf4_init(&T2, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tijab");
312
319
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
313
320
    dpd_buf4_close(&T2);
314
321
    dpd_buf4_close(&L2);
315
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 22, 28, 22, 28, 0, "LIjAb");
 
322
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
316
323
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
317
324
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
318
325
    dpd_buf4_close(&L2);
319
326
    dpd_buf4_close(&T2);
320
 
    dpd_file2_init(&L1, CC_OEI, 0, 2, 3, "Lia");
 
327
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
321
328
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
322
329
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
323
330
    dpd_file2_close(&L1);
325
332
    trace += dpd_file2_trace(&D); 
326
333
    dpd_file2_close(&D);
327
334
 
328
 
    fprintf(outfile, "\n\tTrace of onepdm = %20.15f\n", trace);
329
 
 
330
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
331
 
    dpd_file2_copy(&T1, CC_OEI, "DIA");
332
 
    dpd_file2_close(&T1);
333
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, "DIA");
 
335
    /*fprintf(outfile, "\n\tTrace of onepdm = %20.15f\n", trace);*/
 
336
 
 
337
    /* This term is * L0 = 0 for excited states */
 
338
    if (rho_params.L_ground) {
 
339
      dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
 
340
      dpd_file2_copy(&T1, CC_OEI, rho_params.DIA_lbl);
 
341
      dpd_file2_close(&T1);
 
342
    }
 
343
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
 
344
 
334
345
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tIJAB");
335
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
346
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
336
347
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
337
348
    dpd_file2_close(&L1);
338
349
    dpd_buf4_close(&T2);
339
350
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
340
 
    dpd_file2_init(&L1, CC_OEI, 0, 2, 3, "Lia");
 
351
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
341
352
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
342
353
    dpd_file2_close(&L1);
343
354
    dpd_buf4_close(&T2);
344
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
355
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
345
356
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
346
357
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
347
358
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
351
362
    dpd_file2_close(&Z);
352
363
    /*  D(I,A) << L2(MN,EF) T2(IN,EF) T(M,A) + L2(Mn,Ef) T2(In,Ef) T(M,A) */
353
364
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
354
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 0, 7, 2, 7, 0, "LIJAB");
 
365
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
355
366
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
356
367
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
357
368
    dpd_buf4_close(&T2);
358
369
    dpd_buf4_close(&L2);
359
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 22, 28, 22, 28, 0, "LIjAb");
 
370
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
360
371
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
361
372
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
362
373
    dpd_buf4_close(&T2);
368
379
    /* T2(MN,AF) L2(MN,EF) T(I,E) + T2(Mn,Af) L2(Mn,Ef) T(I,E) */
369
380
    dpd_file2_init(&Z, CC_TMP0, 0, 1, 1, "Z(A,E)");
370
381
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
371
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 2, 5, 2, 7, 0, "LIJAB");
 
382
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
372
383
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
373
384
    dpd_buf4_close(&L2);
374
385
    dpd_buf4_close(&T2);
375
386
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
376
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 22, 28, 22, 28, 0, "LIjAb");
 
387
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
377
388
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
378
389
    dpd_buf4_close(&L2);
379
390
    dpd_buf4_close(&T2);
383
394
    dpd_file2_close(&Z);
384
395
    dpd_file2_close(&D);
385
396
 
386
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
387
 
    dpd_file2_copy(&T1, CC_OEI, "Dia");
388
 
    dpd_file2_close(&T1);
389
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, "Dia");
 
397
    /* This term is * L0 = 0 for excited states */
 
398
    if (rho_params.L_ground) {
 
399
      dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
 
400
      dpd_file2_copy(&T1, CC_OEI, rho_params.Dia_lbl);
 
401
      dpd_file2_close(&T1);
 
402
    }
 
403
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
 
404
 
390
405
    dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 15, 12, 17, 0, "tijab");
391
 
    dpd_file2_init(&L1, CC_OEI, 0, 2, 3, "Lia");
 
406
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
392
407
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
393
408
    dpd_file2_close(&L1);
394
409
    dpd_buf4_close(&T2);
395
410
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
396
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
 
411
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
397
412
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
398
413
    dpd_file2_close(&L1);
399
414
    dpd_buf4_close(&T2);
400
 
    dpd_file2_init(&L1, CC_OEI, 0, 2, 3, "Lia");
 
415
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
401
416
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
402
417
    dpd_file2_init(&Z, CC_TMP0, 0, 2, 2, "Z(i,m)");
403
418
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
406
421
    dpd_file2_close(&T1);
407
422
    dpd_file2_close(&Z);
408
423
    dpd_file2_init(&Z, CC_TMP0, 0, 2, 2, "Z(i,m)");
409
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 10, 17, 12, 17, 0, "Lijab");
 
424
    dpd_buf4_init(&L2, CC_GLG, 0, 10, 17, 12, 17, 0, "Lijab");
410
425
    dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 17, 12, 17, 0, "tijab");
411
426
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
412
427
    dpd_buf4_close(&T2);
413
428
    dpd_buf4_close(&L2);
414
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 23, 29, 23, 29, 0, "LiJaB");
 
429
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
415
430
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
416
431
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
417
432
    dpd_buf4_close(&T2);
422
437
    dpd_file2_close(&T1);
423
438
    dpd_file2_init(&Z, CC_TMP0, 0, 3, 3, "Z(a,e)");
424
439
    dpd_buf4_init(&T2, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tijab");
425
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 12, 15, 12, 17, 0, "Lijab");
 
440
    dpd_buf4_init(&L2, CC_GLG, 0, 12, 15, 12, 17, 0, "Lijab");
426
441
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
427
442
    dpd_buf4_close(&L2);
428
443
    dpd_buf4_close(&T2);
429
444
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
430
 
    dpd_buf4_init(&L2, CC_LAMPS, 0, 23, 29, 23, 29, 0, "LiJaB");
 
445
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
431
446
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
432
447
    dpd_buf4_close(&L2);
433
448
    dpd_buf4_close(&T2);
438
453
    dpd_file2_close(&D);
439
454
 
440
455
    /* Note that these blocks are still stored occ/vir */
441
 
    dpd_file2_init(&L1, CC_OEI, 0, 0, 1, "LIA");
442
 
    dpd_file2_copy(&L1, CC_OEI, "DAI");
443
 
    dpd_file2_close(&L1);
444
 
 
445
 
    dpd_file2_init(&L1, CC_OEI, 0, 2, 3, "Lia");
446
 
    dpd_file2_copy(&L1, CC_OEI, "Dai");
447
 
    dpd_file2_close(&L1);
448
 
 
 
456
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
 
457
    dpd_file2_copy(&L1, CC_OEI, rho_params.DAI_lbl);
 
458
    dpd_file2_close(&L1);
 
459
 
 
460
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
 
461
    dpd_file2_copy(&L1, CC_OEI, rho_params.Dai_lbl);
 
462
    dpd_file2_close(&L1);
 
463
 
 
464
    /* Check overlaps */
 
465
    /*
 
466
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
 
467
    dot_IA = dpd_file2_dot_self(&D);
 
468
    dpd_file2_close(&D);
 
469
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
 
470
    dot_ia = dpd_file2_dot_self(&D);
 
471
    dpd_file2_close(&D);
 
472
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
 
473
    dot_AI = dpd_file2_dot_self(&D);
 
474
    dpd_file2_close(&D);
 
475
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
 
476
    dot_ai = dpd_file2_dot_self(&D);
 
477
    dpd_file2_close(&D);
 
478
    fprintf(outfile,"\tOverlaps of onepdm after ground-state parts added.\n");
 
479
    fprintf(outfile,"\t<DIA|DIA> = %15.10lf     <Dia|Dia> = %15.10lf\n", dot_IA, dot_ia);
 
480
    fprintf(outfile,"\t<DAI|DAI> = %15.10lf     <Dai|Dai> = %15.10lf\n", dot_AI, dot_ai);
 
481
    fprintf(outfile,"\t<Dpq|Dqp> = %15.10lf\n", dot_IA+dot_ia+dot_AI+dot_ai);
 
482
    */
449
483
  }
450
484
}