qml.qchem.gaussian_kinetic

gaussian_kinetic(la, lb, ra, rb, alpha, beta)[source]

Compute the kinetic integral for two primitive Gaussian functions.

The kinetic integral between two Gaussian functions denoted by \(a\) and \(b\) is computed as [Helgaker (1995) p805]:

\[T_{ab} = -\frac{1}{2} \left ( D_{ij}^2 D_{kl}^0 D_{mn}^0 + D_{ij}^0 D_{kl}^2 D_{mn}^0 + D_{ij}^0 D_{kl}^0 D_{mn}^2\right ),\]

where \(D_{ij}^0 = S_{ij}^0\) is an overlap integral and \(D_{ij}^2\) is computed from overlap integrals \(S\) and the Gaussian exponent \(\beta\) as

\[D_{ij}^2 = j(j-1)S_{i,j-2}^0 - 2\beta(2j+1)S_{i,j}^0 + 4\beta^2 S_{i,j+2}^0.\]
Parameters
  • la (tuple[int]) – angular momentum for the first Gaussian function

  • lb (tuple[int]) – angular momentum for the second Gaussian function

  • ra (array[float]) – position vector of the the first Gaussian function

  • rb (array[float]) – position vector of the the second Gaussian function

  • alpha (array[float]) – exponent of the first Gaussian function

  • beta (array[float]) – exponent of the second Gaussian function

Returns

kinetic integral between two Gaussian functions

Return type

array[float]

Example

>>> la, lb = (0, 0, 0), (0, 0, 0)
>>> ra = np.array([0., 0., 0.])
>>> rb = rb = np.array([0., 0., 0.])
>>> alpha = np.array([np.pi/2])
>>> beta = np.array([np.pi/2])
>>> t = gaussian_kinetic(la, lb, ra, rb, alpha, beta)
>>> t
array([2.35619449])