3
#include <libdpd/dpd.h>
4
#include <libpsio/psio.h>
12
dpdbuf4 newtIJAB, newtijab, newtIjAb, t2, t2a, t2b;
16
if(params.ref == 0) { /** RHF **/
18
dpd_buf4_init(&newtIjAb, CC_TAMPS, 0, 0, 5, 0, 5, 0, "New tIjAb");
21
dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
22
dpd_contract424(&F, &tIA, &newtIjAb, 1, 1, 1, 1, 1);
26
dpd_buf4_init(&Z, CC_TMP0, 0, 0, 5, 0, 5, 0, "Z1(ij,ab)");
27
dpd_buf4_init(&F, CC_FINTS, 0, 11, 5, 11, 5, 0, "F <ai|bc>");
28
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
29
dpd_contract244(&tIA, &F, &Z, 1, 0, 0, 1, 0);
30
dpd_file2_close(&tIA);
33
dpd_buf4_sort(&Z, CC_TMP0, qpsr, 0, 5, "Z2(ji,ba)");
34
dpd_buf4_axpy(&Z, &newtIjAb, 1.0);
36
dpd_buf4_init(&Z, CC_TMP0, 0, 0, 5, 0, 5, 0, "Z2(ji,ba)");
37
dpd_buf4_axpy(&Z, &newtIjAb, 1.0);
40
dpd_buf4_close(&newtIjAb);
42
else if(params.ref == 1) { /** ROHF **/
44
dpd_buf4_init(&newtIJAB, CC_TAMPS, 0, 0, 7, 2, 7, 0, "New tIJAB");
45
dpd_buf4_init(&newtijab, CC_TAMPS, 0, 0, 7, 2, 7, 0, "New tijab");
46
dpd_buf4_init(&newtIjAb, CC_TAMPS, 0, 0, 5, 0, 5, 0, "New tIjAb");
48
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
49
dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
53
dpd_buf4_init(&F_anti, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
54
dpd_buf4_init(&t2, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (IJ,A>B)");
55
dpd_contract424(&F_anti, &tIA, &t2, 1, 1, 1, 1, 0);
56
dpd_buf4_sort(&t2, CC_TMP0, qprs, 0, 7, "T (JI,A>B)");
58
dpd_buf4_init(&t2a, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (IJ,A>B)");
59
dpd_buf4_init(&t2b, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (JI,A>B)");
60
dpd_buf4_axpy(&t2b, &t2a, -1);
61
dpd_buf4_axpy(&t2a, &newtIJAB, 1);
64
dpd_buf4_close(&F_anti);
68
dpd_buf4_init(&F_anti, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
69
dpd_buf4_init(&t2, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (IJ,A>B)");
70
dpd_contract424(&F_anti, &tia, &t2, 1, 1, 1, 1, 0);
71
dpd_buf4_sort(&t2, CC_TMP0, qprs, 0, 7, "T (JI,A>B)");
73
dpd_buf4_init(&t2a, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (IJ,A>B)");
74
dpd_buf4_init(&t2b, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (JI,A>B)");
75
dpd_buf4_axpy(&t2b, &t2a, -1);
76
dpd_buf4_axpy(&t2a, &newtijab, 1);
79
dpd_buf4_close(&F_anti);
83
dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
84
dpd_contract424(&F, &tia, &newtIjAb, 1, 1, 1, 1, 1);
86
dpd_buf4_init(&F, CC_FINTS, 0, 11, 5, 11, 5, 0, "F <ai|bc>");
87
dpd_contract244(&tIA, &F, &newtIjAb, 1, 0, 0, 1, 1);
90
dpd_file2_close(&tIA);
91
dpd_file2_close(&tia);
93
dpd_buf4_close(&newtIJAB);
94
dpd_buf4_close(&newtijab);
95
dpd_buf4_close(&newtIjAb);
97
else if(params.ref == 2) { /*** UHF ***/
99
dpd_buf4_init(&newtIJAB, CC_TAMPS, 0, 0, 7, 2, 7, 0, "New tIJAB");
100
dpd_buf4_init(&newtijab, CC_TAMPS, 0, 10, 17, 12, 17, 0, "New tijab");
101
dpd_buf4_init(&newtIjAb, CC_TAMPS, 0, 22, 28, 22, 28, 0, "New tIjAb");
103
dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
104
dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
108
dpd_buf4_init(&F, CC_FINTS, 0, 20, 7, 20, 5, 1, "F <IA|BC>");
109
dpd_buf4_init(&t2, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (IJ,A>B)");
110
dpd_contract424(&F, &tIA, &t2, 1, 1, 1, 1, 0);
111
dpd_buf4_sort(&t2, CC_TMP0, qprs, 0, 7, "T (JI,A>B)");
113
dpd_buf4_init(&t2a, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (IJ,A>B)");
114
dpd_buf4_init(&t2b, CC_TMP0, 0, 0, 7, 0, 7, 0, "T (JI,A>B)");
115
dpd_buf4_axpy(&t2b, &t2a, -1);
116
dpd_buf4_axpy(&t2a, &newtIJAB, 1);
117
dpd_buf4_close(&t2b);
118
dpd_buf4_close(&t2a);
123
dpd_buf4_init(&F, CC_FINTS, 0, 30, 17, 30, 15, 1, "F <ia|bc>");
124
dpd_buf4_init(&t2, CC_TMP0, 0, 10, 17, 10, 17, 0, "T (ij,a>b)");
125
dpd_contract424(&F, &tia, &t2, 1, 1, 1, 1, 0);
126
dpd_buf4_sort(&t2, CC_TMP0, qprs, 10, 17, "T (ji,a>b)");
128
dpd_buf4_init(&t2a, CC_TMP0, 0, 10, 17, 10, 17, 0, "T (ij,a>b)");
129
dpd_buf4_init(&t2b, CC_TMP0, 0, 10, 17, 10, 17, 0, "T (ji,a>b)");
130
dpd_buf4_axpy(&t2b, &t2a, -1);
131
dpd_buf4_axpy(&t2a, &newtijab, 1);
132
dpd_buf4_close(&t2b);
133
dpd_buf4_close(&t2a);
138
dpd_buf4_init(&F, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
139
dpd_contract424(&F, &tia, &newtIjAb, 1, 1, 1, 1, 1);
141
dpd_buf4_init(&F, CC_FINTS, 0, 28, 26, 28, 26, 0, "F <Ab|Ci>");
142
dpd_contract244(&tIA, &F, &newtIjAb, 1, 2, 0, 1, 1);
145
dpd_file2_close(&tIA);
146
dpd_file2_close(&tia);
148
dpd_buf4_close(&newtIJAB);
149
dpd_buf4_close(&newtijab);
150
dpd_buf4_close(&newtIjAb);