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]
\[\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},\]and
\[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)\).
- 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.])