Loading [MathJax]/jax/output/HTML-CSS/jax.js

qml.qchem.expansion

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]

Ωij=i+jt=0EijtΛt,

where Λ is a Hermite polynomial of degree t, E denotes the expansion coefficients, Ωij=GiGj, 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]

Ei+1,jt=12pEijt1qrαEijt+(t+1)Eijt+1,

and

Ei,j+1t=12pEijt1+qrβEijt+(t+1)Eijt+1,

where p=α+β and q=αβ/(α+β) are computed from the Gaussian exponents α,β and the position r is computed as r=rαrβ. The starting coefficient is

E000=eqr2,

and Eijt=0 if t<0 or t>(i+j).

Parameters
  • 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 first Gaussian function

  • rb (float) – position component of 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

Returns

expansion coefficients for each Gaussian combination

Return type

array[float]

Example

>>> 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
array([1.])