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+j∑t=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=12pEijt−1−qrαEijt+(t+1)Eijt+1,and
Ei,j+1t=12pEijt−1+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=e−qr2,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.])