3
#include <libdpd/dpd.h>
7
void denom2(dpdbuf4 *X2, double omega);
8
void local_filter_T2(dpdbuf4 *T2, double omega);
10
void X2_build(char *pert, char *cart, int irrep, double omega)
12
dpdfile2 X1, z, F, t1;
13
dpdbuf4 X2, X2new, Z, Z1, Z2, W, T2, I;
16
sprintf(lbl, "%sBAR_%1s_IjAb", pert, cart);
17
dpd_buf4_init(&X2new, CC_LR, irrep, 0, 5, 0, 5, 0, lbl);
18
sprintf(lbl, "New X_%s_%1s_IjAb (%5.3f)", pert, cart, omega);
19
dpd_buf4_copy(&X2new, CC_LR, lbl);
20
dpd_buf4_close(&X2new);
21
dpd_buf4_init(&X2new, CC_LR, irrep, 0, 5, 0, 5, 0, lbl);
25
sprintf(lbl, "X_%s_%1s_IA (%5.3f)", pert, cart, omega);
26
dpd_file2_init(&X1, CC_OEI, irrep, 0, 1, lbl);
28
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
29
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
30
dpd_buf4_init(&W, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
31
dpd_contract244(&X1, &W, &Z, 0, 0, 1, 1, 0);
33
dpd_buf4_axpy(&Z, &X2new, -1);
34
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
35
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
37
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
38
dpd_buf4_axpy(&Z, &X2new, -1);
41
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
42
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
43
dpd_buf4_init(&W, CC_HBAR, 0, 11, 5, 11, 5, 0, "WEiAb");
44
dpd_contract244(&X1, &W, &Z, 1, 0, 0, 1, 0);
46
dpd_buf4_axpy(&Z, &X2new, 1);
47
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
48
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
50
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
51
dpd_buf4_axpy(&Z, &X2new, 1);
54
sprintf(lbl, "z(N,I) %s %1s", pert, cart);
55
dpd_file2_init(&z, CC_TMP0, irrep, 0, 0, lbl);
56
dpd_buf4_init(&W, CC_HBAR, 0, 0, 11, 0, 11, 0, "2WMnIe - WnMIe");
57
dpd_dot23(&X1, &W, &z, 0, 0, 1, 0);
59
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
60
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
61
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
62
dpd_contract244(&z, &T2, &Z, 0, 0, 0, 1, 0);
65
dpd_buf4_axpy(&Z, &X2new, -1);
66
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
67
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
69
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
70
dpd_buf4_axpy(&Z, &X2new, -1);
73
sprintf(lbl, "z(A,E) %s %1s", pert, cart);
74
dpd_file2_init(&z, CC_TMP0, irrep, 1, 1, lbl);
75
dpd_buf4_init(&W, CC_HBAR, 0, 10, 5, 10, 5, 0, "WAmEf 2(mA,Ef) - (mA,fE)");
76
dpd_dot14(&X1, &W, &z, 0, 0, 1, 0);
78
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
79
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
80
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
81
dpd_contract424(&T2, &z, &Z, 3, 1, 0, 1, 0);
84
dpd_buf4_axpy(&Z, &X2new, 1);
85
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
86
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
88
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
89
dpd_buf4_axpy(&Z, &X2new, 1);
96
sprintf(lbl, "X_%s_%1s_IjAb (%5.3f)", pert, cart, omega);
97
dpd_buf4_init(&X2, CC_LR, irrep, 0, 5, 0, 5, 0, lbl);
99
dpd_buf4_axpy(&X2, &X2new, -omega);
101
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
102
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
103
dpd_file2_init(&F, CC_OEI, 0, 1, 1, "FAE");
104
dpd_contract424(&X2, &F, &Z, 3, 1, 0, 1, 0);
106
dpd_buf4_axpy(&Z, &X2new, 1);
107
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
108
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
110
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
111
dpd_buf4_axpy(&Z, &X2new, 1);
114
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
115
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
116
dpd_file2_init(&F, CC_OEI, 0, 0, 0, "FMI");
117
dpd_contract244(&F, &X2, &Z, 0, 0, 0, 1, 0);
119
dpd_buf4_axpy(&Z, &X2new, -1);
120
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
121
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
123
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
124
dpd_buf4_axpy(&Z, &X2new, -1);
127
dpd_buf4_init(&W, CC_HBAR, 0, 0, 0, 0, 0, 0, "WMnIj");
128
dpd_contract444(&W, &X2, &X2new, 1, 1, 1, 1);
131
sprintf(lbl, "Z(Ab,Ij) %s %1s", pert, cart);
132
dpd_buf4_init(&Z, CC_TMP0, irrep, 5, 0, 5, 0, 0, lbl);
133
dpd_buf4_init(&I, CC_BINTS, 0, 5, 5, 5, 5, 0, "B <ab|cd>");
134
dpd_contract444(&I, &X2, &Z, 0, 0, 1, 0);
136
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
137
dpd_buf4_sort(&Z, CC_TMP0, rspq, 0, 5, lbl);
139
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
140
dpd_buf4_axpy(&Z, &X2new, 1);
143
sprintf(lbl, "Z(Ij,Mb) %s %1s", pert, cart);
144
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 10, 0, 10, 0, lbl);
145
dpd_buf4_init(&I, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
146
dpd_contract444(&X2, &I, &Z, 0, 0, 1, 0);
148
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
149
dpd_buf4_init(&Z1, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
150
dpd_file2_init(&t1, CC_OEI, 0, 0, 1, "tIA");
151
dpd_contract244(&t1, &Z, &Z1, 0, 2, 1, 1, 0);
152
dpd_file2_close(&t1);
154
dpd_buf4_axpy(&Z1, &X2new, -1);
155
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
156
dpd_buf4_sort(&Z1, CC_TMP0, qpsr, 0, 5, lbl);
158
dpd_buf4_init(&Z1, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
159
dpd_buf4_axpy(&Z1, &X2new, -1);
162
sprintf(lbl, "Z(Ij,Mn) %s %1s", pert, cart);
163
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 0, 0, 0, 0, lbl);
164
dpd_buf4_init(&I, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
165
dpd_contract444(&X2, &I, &Z, 0, 0, 1, 0);
167
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tauIjAb");
168
dpd_contract444(&Z, &T2, &X2new, 0, 1, 1, 1);
174
sprintf(lbl, "Z(Ib,jA) %s %1s", pert, cart);
175
dpd_buf4_init(&Z, CC_TMP0, irrep, 10, 10, 10, 10, 0, lbl);
176
dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
177
sprintf(lbl, "X_%s_%1s_IbjA (%5.3f)", pert, cart, omega);
178
dpd_buf4_init(&X2, CC_LR, irrep, 10, 10, 10, 10, 0, lbl);
179
dpd_contract444(&X2, &W, &Z, 0, 1, 1, 0);
182
sprintf(lbl, "X(IA,jb) III %s %1s", pert, cart);
183
dpd_buf4_sort(&Z, CC_TMP0, psrq, 10, 10, lbl);
185
sprintf(lbl, "X(IA,jb) I %s %1s", pert, cart);
186
dpd_buf4_init(&Z1, CC_TMP0, irrep, 10, 10, 10, 10, 0, lbl);
187
sprintf(lbl, "X_%s_%1s_(2IAjb-IbjA) (%5.3f)", pert, cart, omega);
188
dpd_buf4_init(&X2, CC_LR, irrep, 10, 10, 10, 10, 0, lbl);
189
dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "2 W(ME,jb) + W(Me,Jb)");
190
dpd_contract444(&X2, &W, &Z1, 0, 1, 0.5, 0);
193
sprintf(lbl, "Z(Ib,jA) %s %1s", pert, cart);
194
dpd_buf4_init(&Z2, CC_TMP0, irrep, 10, 10, 10, 10, 0, lbl);
195
dpd_buf4_axpy(&Z2, &Z1, 0.5);
197
sprintf(lbl, "X(IA,jb) III %s %1s", pert, cart);
198
dpd_buf4_init(&Z2, CC_TMP0, irrep, 10, 10, 10, 10, 0, lbl);
199
dpd_buf4_axpy(&Z2, &Z1, 1);
201
sprintf(lbl, "X(Ij,Ab) I+III %s %1s", pert, cart);
202
dpd_buf4_sort(&Z1, CC_TMP0, prqs, 0, 5, lbl);
204
dpd_buf4_init(&Z1, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
205
dpd_buf4_axpy(&Z1, &X2new, 1);
206
sprintf(lbl, "X(Ij,Ab) II+IV %s %1s", pert, cart);
207
dpd_buf4_sort(&Z1, CC_TMP0, qpsr, 0, 5, lbl);
209
dpd_buf4_init(&Z1, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
210
dpd_buf4_axpy(&Z1, &X2new, 1);
213
sprintf(lbl, "z(F,A) %s %1s", pert, cart);
214
dpd_file2_init(&z, CC_TMP0, irrep, 1, 1, lbl);
215
sprintf(lbl, "X_%s_%1s_(2IjAb-IjbA) (%5.3f)", pert, cart, omega);
216
dpd_buf4_init(&X2, CC_LR, irrep, 0, 5, 0, 5, 0, lbl);
217
dpd_buf4_init(&I, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
218
dpd_contract442(&I, &X2, &z, 2, 2, 1, 0);
221
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
222
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
223
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
224
dpd_contract424(&T2, &z, &Z, 3, 0, 0, 1, 0);
227
dpd_buf4_axpy(&Z, &X2new, -1);
228
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
229
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
231
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
232
dpd_buf4_axpy(&Z, &X2new, -1);
235
sprintf(lbl, "z(N,I) %s %1s", pert, cart);
236
dpd_file2_init(&z, CC_TMP0, irrep, 0, 0, lbl);
237
sprintf(lbl, "X_%s_%1s_(2IjAb-IjbA) (%5.3f)", pert, cart, omega);
238
dpd_buf4_init(&X2, CC_LR, irrep, 0, 5, 0, 5, 0, lbl);
239
dpd_buf4_init(&I, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
240
dpd_contract442(&I, &X2, &z, 0, 0, 1, 0);
243
sprintf(lbl, "Z(Ij,Ab) %s %1s", pert, cart);
244
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
245
dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
246
dpd_contract244(&z, &T2, &Z, 0, 0, 0, 1, 0);
249
dpd_buf4_axpy(&Z, &X2new, -1);
250
sprintf(lbl, "Z(jI,bA) %s %1s", pert, cart);
251
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, lbl);
253
dpd_buf4_init(&Z, CC_TMP0, irrep, 0, 5, 0, 5, 0, lbl);
254
dpd_buf4_axpy(&Z, &X2new, -1);
257
if(params.local) local_filter_T2(&X2new, omega);
258
else denom2(&X2new, omega);
259
dpd_buf4_close(&X2new);