Skip to content

Commit fd88efc

Browse files
Aayush GuptaAayush Gupta
authored andcommitted
fix: rename shellloop methods and improve docstrings per review
1 parent c00d380 commit fd88efc

1 file changed

Lines changed: 109 additions & 24 deletions

File tree

gbasis/integrals/libcint.py

Lines changed: 109 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1088,14 +1088,21 @@ def nuclear_attraction_integral(self, notation="physicist", transform=None):
10881088
"""
10891089
return self._nuc(notation=notation, transform=transform)
10901090

1091-
def overlap_shellloop(self):
1091+
def overlap(self):
10921092
r"""
1093-
Compute overlap integral using C shell loop.
1093+
Compute the overlap integrals.
1094+
1095+
The overlap integral measures the degree to which two basis functions
1096+
:math:`\phi_i` and :math:`\phi_j` occupy the same region of space,
1097+
and is defined as:
1098+
1099+
.. math::
1100+
S_{ij} = \langle \phi_i | \phi_j \rangle
10941101
10951102
Returns
10961103
-------
10971104
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1098-
Integral array.
1105+
Overlap integral array.
10991106
11001107
"""
11011108
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')
@@ -1105,14 +1112,21 @@ def overlap_shellloop(self):
11051112
)
11061113
return out
11071114

1108-
def kinetic_energy_shellloop(self):
1115+
def kinetic_energy(self):
11091116
r"""
1110-
Compute kinetic energy integral using C shell loop.
1117+
Compute the kinetic energy integrals.
1118+
1119+
The kinetic energy integral represents the expectation value of the
1120+
kinetic energy operator between basis functions :math:`\phi_i` and
1121+
:math:`\phi_j`, and is defined as:
1122+
1123+
.. math::
1124+
T_{ij} = \langle \phi_i | -\frac{1}{2}\nabla^2 | \phi_j \rangle
11111125
11121126
Returns
11131127
-------
11141128
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1115-
Integral array.
1129+
Kinetic energy integral array.
11161130
11171131
"""
11181132
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')
@@ -1122,14 +1136,24 @@ def kinetic_energy_shellloop(self):
11221136
)
11231137
return out
11241138

1125-
def nuclear_attraction_shellloop(self):
1139+
def nuclear_attraction(self):
11261140
r"""
1127-
Compute nuclear attraction integral using C shell loop.
1141+
Compute the nuclear attraction integrals.
1142+
1143+
The nuclear attraction integral represents the electrostatic attraction
1144+
between electrons and nuclei. For each pair of basis functions
1145+
:math:`\phi_i` and :math:`\phi_j`, it is defined as:
1146+
1147+
.. math::
1148+
V_{ij} = \langle \phi_i | \sum_A \frac{Z_A}{|\mathbf{r} - \mathbf{R}_A|} | \phi_j \rangle
1149+
1150+
where :math:`Z_A` is the nuclear charge and :math:`\mathbf{R}_A` is
1151+
the position of atom :math:`A`.
11281152
11291153
Returns
11301154
-------
11311155
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1132-
Integral array.
1156+
Nuclear attraction integral array.
11331157
11341158
"""
11351159
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')
@@ -1139,31 +1163,53 @@ def nuclear_attraction_shellloop(self):
11391163
)
11401164
return out
11411165

1142-
def momentum_shellloop(self):
1166+
def momentum(self):
11431167
r"""
1144-
Compute momentum integral using C shell loop.
1168+
Compute the momentum integrals.
1169+
1170+
The momentum integral represents the expectation value of the momentum
1171+
operator between basis functions :math:`\phi_i` and :math:`\phi_j`,
1172+
and is defined as:
1173+
1174+
.. math::
1175+
p_{ij} = \langle \phi_i | -i\nabla | \phi_j \rangle
11451176
11461177
Returns
11471178
-------
11481179
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1149-
Integral array.
1180+
Momentum integral array.
1181+
1182+
Notes
1183+
-----
1184+
Returns the raw single-component output from ``int1e_ipovlp_sph``
1185+
without the :math:`-i` scaling factor. The full 3-component momentum
1186+
integral (x, y, z) with proper scaling is available via
1187+
``momentum_integral()``.
11501188
11511189
"""
1190+
11521191
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')
11531192
libcint_bindings.momentum_integral_shellloop(
11541193
out, self.natm, self.atm, self.nbas,
11551194
self.bas, self.env, self._offs, self.nbfn
11561195
)
11571196
return out
11581197

1159-
def rinv_shellloop(self):
1198+
def rinv(self):
11601199
r"""
1161-
Compute 1/r integral using C shell loop.
1200+
Compute the :math:`1/\left|\mathbf{r} - \mathbf{R}_\text{inv}\right|` integrals.
1201+
1202+
The :math:`1/r` integral represents the electrostatic potential due to
1203+
a unit point charge at a given origin. For each pair of basis functions
1204+
:math:`\phi_i` and :math:`\phi_j`, it is defined as:
1205+
1206+
.. math::
1207+
V_{ij} = \langle \phi_i | \frac{1}{|\mathbf{r} - \mathbf{R}_\text{inv}|} | \phi_j \rangle
11621208
11631209
Returns
11641210
-------
11651211
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1166-
Integral array.
1212+
1/r integral array.
11671213
11681214
"""
11691215
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')
@@ -1173,14 +1219,27 @@ def rinv_shellloop(self):
11731219
)
11741220
return out
11751221

1176-
def dipole_shellloop(self):
1222+
def dipole(self):
11771223
r"""
1178-
Compute dipole integral using C shell loop.
1224+
Compute the dipole moment integrals.
1225+
1226+
The dipole moment integral represents the expectation value of the
1227+
position operator between basis functions :math:`\phi_i` and
1228+
:math:`\phi_j`, and is defined as:
1229+
1230+
.. math::
1231+
\mu_{ij} = \langle \phi_i | \mathbf{r} | \phi_j \rangle
11791232
11801233
Returns
11811234
-------
11821235
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1183-
Integral array.
1236+
Dipole moment integral array.
1237+
1238+
Notes
1239+
-----
1240+
Returns the first component (x) of the dipole integral from
1241+
``int1e_r_sph``. The full 3-component dipole integral is
1242+
available via ``moment_integral()``.
11841243
11851244
"""
11861245
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')
@@ -1190,14 +1249,27 @@ def dipole_shellloop(self):
11901249
)
11911250
return out
11921251

1193-
def quadrupole_shellloop(self):
1252+
def quadrupole(self):
11941253
r"""
1195-
Compute quadrupole integral using C shell loop.
1254+
Compute the quadrupole moment integrals.
1255+
1256+
The quadrupole moment integral represents the expectation value of the
1257+
second-order position operator between basis functions :math:`\phi_i`
1258+
and :math:`\phi_j`, and is defined as:
1259+
1260+
.. math::
1261+
Q_{ij} = \langle \phi_i | \mathbf{r}\mathbf{r} | \phi_j \rangle
11961262
11971263
Returns
11981264
-------
11991265
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1200-
Integral array.
1266+
Quadrupole moment integral array.
1267+
1268+
Notes
1269+
-----
1270+
Returns the first component of the quadrupole integral from
1271+
``int1e_rr_sph``. The full 9-component quadrupole integral is
1272+
available via ``moment_integral()``.
12011273
12021274
"""
12031275
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')
@@ -1207,14 +1279,27 @@ def quadrupole_shellloop(self):
12071279
)
12081280
return out
12091281

1210-
def octupole_shellloop(self):
1282+
def octupole(self):
12111283
r"""
1212-
Compute octupole integral using C shell loop.
1284+
Compute the octupole moment integrals.
1285+
1286+
The octupole moment integral represents the expectation value of the
1287+
third-order position operator between basis functions :math:`\phi_i`
1288+
and :math:`\phi_j`, and is defined as:
1289+
1290+
.. math::
1291+
O_{ij} = \langle \phi_i | \mathbf{r}\mathbf{r}\mathbf{r} | \phi_j \rangle
12131292
12141293
Returns
12151294
-------
12161295
out : np.ndarray(Nbasis, Nbasis, dtype=float)
1217-
Integral array.
1296+
Octupole moment integral array.
1297+
1298+
Notes
1299+
-----
1300+
Returns the first component of the octupole integral from
1301+
``int1e_rrr_sph``. The full 27-component octupole integral is
1302+
available via ``moment_integral()``.
12181303
12191304
"""
12201305
out = np.zeros((self.nbfn, self.nbfn), dtype=c_double, order='F')

0 commit comments

Comments
 (0)