qml.qchem.moment_integral¶
-
moment_integral
(basis_a, basis_b, order, idx, normalize=True)[source]¶ Return a function that computes the multipole moment integral for two contracted Gaussians.
The multipole moment integral for two primitive Gaussian functions is computed as
\[S^e = \left \langle G_i | q^e | G_j \right \rangle \left \langle G_k | G_l \right \rangle \left \langle G_m | G_n \right \rangle,\]where \(G_{i-n}\) is a one-dimensional Gaussian function, \(q = x, y, z\) is the coordinate at which the integral is evaluated and \(e\) is a positive integer that is represented by the
order
argument. For contracted Gaussians, these integrals will be computed over primitive Gaussians, multiplied by the normalized contraction coefficients and finally summed over.The
idx
argument determines the coordinate \(q\) at which the integral is computed. It can be \(0, 1, 2\) for \(x, y, z\) components, respectively.- Parameters
basis_a (BasisFunction) – left basis function
basis_b (BasisFunction) – right basis function
order (integer) – exponent of the position component
idx (integer) – index determining the dimension of the multipole moment integral
normalize (bool) – if True, the basis functions get normalized
- Returns
function that computes the multipole moment integral
- Return type
function
Example
>>> symbols = ['H', 'Li'] >>> geometry = np.array([[0.0, 0.0, 0.0], [2.0, 0.0, 0.0]], requires_grad = True) >>> mol = qml.qchem.Molecule(symbols, geometry) >>> args = [mol.r] # initial values of the differentiable parameters >>> order, idx = 1, 0 >>> moment_integral(mol.basis_set[0], mol.basis_set[1], order, idx)(*args) 3.12846324e-01