3
\brief Enter brief description of file here
6
#include <libdpd/dpd.h>
13
namespace psi { namespace ccdensity {
15
extern void x_xi_check(char *term_lbl);
16
extern void x_xi1_connected(void);
18
/* compute xi_1 amplitudes for zeta equations */
22
dpdfile2 L1, XIA, Xia, I1, R1, F1, Z1A, Z1B;
23
int L_irr, R_irr, G_irr;
24
dpdbuf4 D, R2, L2, H2, I2, Z2;
31
x_xi_check("begin xi1");
33
/* term 1, XIA += 0.25 LIA Rmnef <mn||ef> */
34
if ((R_irr == 0) && (!params.connect_xi)) {
35
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_OO");
36
params.RD_overlap = dpd_file2_trace(&I1);
38
dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
39
dpd_file2_copy(&L1, EOM_XI, "XIA");
41
dpd_file2_init(&L1, EOM_XI, G_irr, 0, 1, "XIA");
42
dpd_file2_scm(&L1, params.RD_overlap);
49
/* term 2, Xia -= (Rmnef <in||ef>) * Lma */
50
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
51
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_OO");
52
dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
53
dpd_contract222(&I1, &L1, &XIA, 1, 1, -1.0, 1.0);
56
dpd_file2_close(&XIA);
61
/* term 3, XIA -= 0.5 LIE (Rmnfe <mn||fa>) */
62
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
63
dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
64
dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 1, 1, "RD_VV");
65
dpd_contract222(&L1, &I1, &XIA, 0, 1, -1.0, 1.0);
68
dpd_file2_close(&XIA);
73
/* term 4, XIA += (Lme Rmnef) <in||af> */
74
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
75
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L1R2_OV");
76
dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D 2<ij|ab> - <ij|ba>");
77
dpd_dot24(&I1, &D, &XIA, 0, 0, 1.0, 1.0);
80
dpd_file2_close(&XIA);
85
/* term 5, XIA += (Lmnef * Rmnef) FIA */
86
dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
87
dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
88
params.overlap1 = 2.0 * dpd_file2_dot(&R1, &L1);
91
params.overlap2 = 1.0e0 - params.overlap1 - (params.R0 * params.L0);
93
/* When (connect_xi), we still include the following term, even though Hbar
94
is not connected to R. The <Rmnef|Lmnef> Fia term here along with the
95
<Rme|Lme> Fia term which is _not_ substracted out in xi_connected add up
96
to (1)*Fia. This constant term causes cclambda to be solving the
97
ground-state lambda equations implicitly when it solves for zeta. */
98
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
99
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
100
dpd_file2_axpy(&F1, &XIA, params.overlap2, 0);
101
dpd_file2_close(&F1);
102
dpd_file2_close(&XIA);
104
x_xi_check("term 5");
107
/* term 6, XIA -= (0.5 Linef Rmnef) Fma */
108
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
109
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR2_OO");
110
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
111
dpd_contract222(&I1, &F1, &XIA, 0, 1, -1.0, 1.0);
112
dpd_file2_close(&F1);
113
dpd_file2_close(&I1);
114
dpd_file2_close(&XIA);
116
x_xi_check("term 6");
119
/* term 7, XIA -= (0.5 Lmnaf Rmnef) Fie */
120
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
121
dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR2_VV");
122
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
123
dpd_contract222(&F1, &I1, &XIA, 0, 0, -1.0, 1.0);
124
dpd_file2_close(&F1);
125
dpd_file2_close(&I1);
126
dpd_file2_close(&XIA);
128
x_xi_check("term 7");
131
if (!params.connect_xi) {
132
/* term 8, XIA += (Fme Rmnef) Linaf) */
133
dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 1, "Z(N,F)");
134
dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
135
dpd_buf4_init(&R2, CC_GR, R_irr, 0, 5, 0, 5, 0, "2RIjAb - RIjbA");
136
dpd_dot13(&F1, &R2, &I1, 0, 0, 1.0, 0.0);
138
dpd_file2_close(&F1);
139
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
140
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "2LIjAb - LIjbA");
141
dpd_dot24(&I1, &L2, &XIA, 0, 0, 1.0, 1.0);
143
dpd_file2_close(&XIA);
144
dpd_file2_close(&I1);
146
x_xi_check("term 8");
150
/* term 9, XIA -= (0.5 Lmnef Rmoef) Woina */
151
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
152
dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR2_OO");
153
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "2WMnIe - WnMIe (Mn,eI)");
154
dpd_dot14(&I1, &H2, &XIA, 1, 0, -1.0, 1.0);
156
dpd_file2_close(&I1);
157
dpd_file2_close(&XIA);
159
x_xi_check("term 9");
162
/* term 10 XIA += (0.5 Lmnef Rmneg) Wfiga */
163
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
164
dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR2_VV");
165
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf 2(Am,Ef) - (Am,fE)");
166
dpd_dot13(&I1, &H2, &XIA, 0, 0, 1.0, 1.0);
168
dpd_file2_close(&I1);
169
dpd_file2_close(&XIA);
171
x_xi_check("term 10");
174
/* term 11 XIA -= Rmnef Lmoea Winof */
175
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe - 2WnMIe (Mn,eI)");
176
dpd_buf4_sort(&H2, EOM_TMP1, qrsp, 10, 0, "WMnIe - 2WnMIe qrsp");
178
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "2WMnIe - WnMIe (Mn,eI)");
179
dpd_buf4_sort(&H2, EOM_TMP1, qrsp, 10, 0, "2WMnIe - WnMIe qrsp");
182
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
183
dpd_buf4_init(&H2, EOM_TMP1, 0, 10, 0, 10, 0, 0, "2WMnIe - WnMIe qrsp");
184
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVov");
185
dpd_contract442(&H2, &I2, &XIA, 3, 3, -1.0, 1.0);
188
dpd_buf4_init(&H2, EOM_TMP1, 0, 10, 0, 10, 0, 0, "WMnIe - 2WnMIe qrsp");
189
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OvOv");
190
dpd_contract442(&H2, &I2, &XIA, 3, 3, -1.0, 1.0);
193
dpd_file2_close(&XIA);
195
x_xi_check("term 11");
198
/* term 12, + (Rmnef Lmieg) Wgnaf */
199
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OvOv");
200
dpd_buf4_copy(&I2, EOM_TMP1, "R2L2 2OVov + OvOv");
202
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "R2L2 2OVov + OvOv");
203
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVov");
204
dpd_buf4_axpy(&I2, &Z2, 2.0);
206
dpd_buf4_sort(&Z2, EOM_TMP1, sprq, 11, 10, "2OVov + OvOv (Gn,If)");
209
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVov");
210
dpd_buf4_copy(&I2, EOM_TMP1, "R2L2 OVov + 2OvOv");
212
dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "R2L2 OVov + 2OvOv");
213
dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OvOv");
214
dpd_buf4_axpy(&I2, &Z2, 2.0);
216
dpd_buf4_sort(&Z2, EOM_TMP1, spqr, 11, 11, "OVov + 2OvOv (Gn,fI)");
219
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
220
dpd_buf4_init(&I2, EOM_TMP1, G_irr, 11, 10, 11, 10, 0, "2OVov + OvOv (Gn,If)");
221
dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
222
dpd_contract442(&I2, &H2, &XIA, 2, 2, 1.0, 1.0);
224
dpd_buf4_init(&I2, EOM_TMP1, G_irr, 11, 11, 11, 11, 0, "OVov + 2OvOv (Gn,fI)");
225
dpd_contract442(&I2, &H2, &XIA, 3, 3, -1.0, 1.0);
228
dpd_file2_close(&XIA);
230
x_xi_check("term 12");
233
/* term 13 -0.25 (Rmnfg Weifg) Lmnea */
234
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
235
dpd_buf4_init(&I2, EOM_TMP, R_irr, 0, 10, 0, 10, 0, "R2Wamef_OoOv");
236
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "2LIjAb - LIjbA");
237
dpd_contract442(&I2, &L2, &XIA, 2, 2, 1.0, 1.0);
240
dpd_file2_close(&XIA);
242
x_xi_check("term 13");
245
/* term 14, +0.25 * (Rmnef Loief) * Wmnoa */
246
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
247
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "2WMnIe - WnMIe");
248
dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 0, 0, 0, 0, "R2L2_OoOo");
249
dpd_contract442(&I2, &H2, &XIA, 3, 3, 1.0, 1.0);
252
dpd_file2_close(&XIA);
254
x_xi_check("term 14");
257
/* term 15 Linag (Rnmef Wgmef) */
258
if (!params.connect_xi) {
259
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
260
dpd_file2_init(&I1, EOM_TMP, R_irr, 0, 1, "R2Wamef_OV");
261
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "2LIjAb - LIjbA");
262
dpd_dot24(&I1, &L2, &XIA, 0, 0, 1.0, 1.0);
264
dpd_file2_close(&I1);
265
dpd_file2_close(&XIA);
267
x_xi_check("term 15");
271
/* term 16 XIA += 0.5 Lioaf (Rmnef Wmnoe) */
272
if (!params.connect_xi) {
273
dpd_file2_init(&Z1A, EOM_TMP1, R_irr, 0, 1, "Z(O,F)");
274
dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe - 2WnMIe (Mn,eI)");
275
dpd_buf4_init(&R2, CC_GR, R_irr, 0, 5, 0, 5, 0, "RIjAb");
276
dpd_contract442(&H2, &R2, &Z1A, 3, 3, 1.0, 0.0);
279
dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
280
dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "2LIjAb - LIjbA");
281
dpd_dot24(&Z1A, &L2, &XIA, 0, 0, 1.0, 1.0);
283
dpd_file2_close(&XIA);
284
dpd_file2_close(&Z1A);
286
x_xi_check("term 16");
290
if (params.connect_xi) x_xi1_connected();
295
}} // namespace psi::ccdensity