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

Compute Hermite Gaussian expansion coefficients recursively for two Gaussian functions.

An overlap distribution, which defines the product of two Gaussians, can be written as a Hermite expansion as [Helgaker (1995) p798]

\[\Omega_{ij} = \sum_{t=0}^{i+j} E_t^{ij} \Lambda_t,\]

where \(\Lambda\) is a Hermite polynomial of degree \(t\), \(E\) denotes the expansion coefficients, \(\Omega_{ij} = G_i G_j\), and \(G\) is a Gaussian function. The overlap integral between two Gaussian functions can be simply computed by integrating over the overlap distribution which requires obtaining the expansion coefficients. This can be done recursively as [Helgaker (1995) p799]

\[E_t^{i+1,j} = \frac{1}{2p} E_{t-1}^{ij} - \frac{qr}{\alpha} E_{t}^{ij} + (t+1) E_{t+1}^{ij},\]


\[E_t^{i,j+1} = \frac{1}{2p} E_{t-1}^{ij} + \frac{qr}{\beta} E_{t}^{ij} + (t+1) E_{t+1}^{ij},\]

where \(p = \alpha + \beta\) and \(q = \alpha \beta / (\alpha + \beta)\) are computed from the Gaussian exponents \(\alpha, \beta\) and the position \(r\) is computed as \(r = r_\alpha - r_\beta\). The starting coefficient is

\[E_0^{00} = e^{-qr^2},\]

and \(E_t^{ij} = 0\) if \(t < 0\) or \(t > (i+j)\).

  • la (integer) – angular momentum component for the first Gaussian function

  • lb (integer) – angular momentum component for the second Gaussian function

  • ra (float) – position component of the the first Gaussian function

  • rb (float) – position component of the the second Gaussian function

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

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

  • t (integer) – number of nodes in the Hermite Gaussian


expansion coefficients for each Gaussian combination

Return type



>>> la, lb = 0, 0
>>> ra, rb = 0.0, 0.0
>>> alpha = np.array([3.42525091])
>>> beta =  np.array([3.42525091])
>>> t = 0
>>> c = expansion(la, lb, ra, rb, alpha, beta, t)
>>> c