Skip to content

Commit 8bd6884

Browse files
Aayush GuptaAayush Gupta
authored andcommitted
fix: fill ERI in physicist notation in C
1 parent 5ba1d00 commit 8bd6884

2 files changed

Lines changed: 10 additions & 11 deletions

File tree

gbasis/integrals/libcint.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,12 +1326,12 @@ def electron_repulsion(self):
13261326
Electron repulsion integral array.
13271327
13281328
"""
1329-
out = np.zeros((self.nbfn, self.nbfn, self.nbfn, self.nbfn), dtype=c_double, order='F')
1329+
out = np.zeros((self.nbfn, self.nbfn, self.nbfn, self.nbfn), dtype=c_double)
13301330
libcint_bindings.eri_shellloop(
13311331
out, self.natm, self.atm, self.nbas,
13321332
self.bas, self.env, self._offs, self.nbfn
13331333
)
1334-
return out.transpose(0, 2, 1, 3)
1334+
return out
13351335

13361336
def electron_repulsion_integral(self, notation="physicist", transform=None):
13371337
r"""

gbasis/integrals/src/libcint_wrap.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -261,15 +261,14 @@ eri_shellloop(PyObject *self, PyObject *args)
261261
for (int s = 0; s < s_off; s++) {
262262
double val = buf[p + p_off*(q + q_off*(r + r_off*s))];
263263
int i = ipos+p, j = jpos+q, k = kpos+r, l = lpos+s;
264-
out[i*nbfn*nbfn*nbfn + j*nbfn*nbfn + k*nbfn + l] = val;
265-
out[i*nbfn*nbfn*nbfn + j*nbfn*nbfn + l*nbfn + k] = val;
266-
out[j*nbfn*nbfn*nbfn + i*nbfn*nbfn + k*nbfn + l] = val;
267-
out[j*nbfn*nbfn*nbfn + i*nbfn*nbfn + l*nbfn + k] = val;
268-
out[k*nbfn*nbfn*nbfn + l*nbfn*nbfn + i*nbfn + j] = val;
269-
out[k*nbfn*nbfn*nbfn + l*nbfn*nbfn + j*nbfn + i] = val;
270-
out[l*nbfn*nbfn*nbfn + k*nbfn*nbfn + i*nbfn + j] = val;
271-
out[l*nbfn*nbfn*nbfn + k*nbfn*nbfn + j*nbfn + i] = val;
272-
}
264+
out[i*nbfn*nbfn*nbfn + k*nbfn*nbfn + j*nbfn + l] = val;
265+
out[i*nbfn*nbfn*nbfn + l*nbfn*nbfn + j*nbfn + k] = val;
266+
out[j*nbfn*nbfn*nbfn + k*nbfn*nbfn + i*nbfn + l] = val;
267+
out[j*nbfn*nbfn*nbfn + l*nbfn*nbfn + i*nbfn + k] = val;
268+
out[k*nbfn*nbfn*nbfn + i*nbfn*nbfn + l*nbfn + j] = val;
269+
out[k*nbfn*nbfn*nbfn + j*nbfn*nbfn + l*nbfn + i] = val;
270+
out[l*nbfn*nbfn*nbfn + i*nbfn*nbfn + k*nbfn + j] = val;
271+
out[l*nbfn*nbfn*nbfn + j*nbfn*nbfn + k*nbfn + i] = val; }
273272
}
274273
}
275274
}

0 commit comments

Comments
 (0)