2.6. Gaussian basis sets¶
2.6.1. Standard basis sets¶
A list of currently supported built-in basis sets is tabulated below.
Basis set name | Supported elements |
---|---|
STO-3G | H–Kr |
STO-6G | H–Kr |
3-21G | H–Kr |
3-21G(d) | Na–Ar |
3-21++G(d) | Na–Ar |
4-31G | H–Ne, P–Cl |
6-31G | H–Zn |
6-31G(d) | H–Zn |
6-31G(d,p) | H–Zn |
6-31+G | H–Ca |
6-31+G(d) | H–Ca |
6-31++G(d,p) | H, Li–Ca |
cc-pVDZ | H–Ar, Ca–Kr |
cc-pVTZ | H–Ar, Ca–Kr |
cc-pVQZ | H–Ar, Ca–Kr |
cc-pCVDZ | Li–Ar |
cc-pCVTZ | Li–Ar |
cc-pCVQZ | Li–Ar |
aug-cc-pVDZ | H–Ar, Sc–Kr |
aug-cc-pVTZ | H–Ar, Sc–Kr |
aug-cc-pVQZ | H–Ar, Sc–Kr |
aug-cc-pV5Z | H, He, B–Ne, Al–Ar, Sc–Kr |
aug-cc-pV6Z | H, He, B–Ne, Al–Ar |
aug-cc-pCVDZ | Li–Ar |
aug-cc-pCVTZ | Li–Ar |
aug-cc-pCVQZ | Li–Ar |
def2-svpd | H–Kr |
def2-tzvp | H–Kr |
def2-tzvpd | H–Kr |
def2-qzvp | H–Kr |
def2-qzvpd | H–Kr |
ANO-RCC | H–Kr |
Note that the basis set names are case-insensitive in HORTON. These basis sets were taken from the EMSL library (https://bse.pnl.gov/bse/portal). When publishing results obtained with these basis sets, please cite the following references [feller1996] and [Didier2007].
2.6.2. Collected notes on Gaussian basis sets¶
2.6.2.1. Introduction¶
HORTON supports contracted Gaussian basis functions, which have in general the following form:
where \(K\) is the contraction length, \(D_k\) is a contraction coefficient, \(N\) is a normalization constant, \(P\) is a Cartesian polynomial, \(\alpha_k\) is an exponent and \(\mathbf{r}_A\) is the center of the basis function. The summation over \(k\) is conventionally called a contraction of primitive Gaussian basis functions. The normalization of each primitive depends on both the polynomial and the exponent and is defined by the following relation:
Likewise, the contraction coefficients are defined such that the total contraction satisfies the same normalization condition:
There are two common forms of the polynomial: Cartesian and pure (harmonic) basis functions. Both types will be defined below, together with some conventions that are needed for the implementation in HORTON.
2.6.2.2. Cartesian basis functions¶
When the polynomial consists of a single term as follows:
with \(n_x\), \(n_y\), \(n_z\), zero or positive integer powers, one speaks of Cartesian Gaussian basis functions. One refers to the sum of the powers as the angular momentum of the Cartesian Gaussian basis. The normalization constant is:
In practice one combines all basis functions of a given angular momentum (or algebraic order). A basis specification typically only mentions the total angular momentum, and it is assumed that all polynomials of that order are included in the basis set. The number of basis functions, i.e. the number of polynomials, for a given angular momentum, \(n=n_x+n_y+n_z\), is \((n+1)(n+2)/2\). For the implementation, one must fix a certain ordering of these polynomials. In HORTON, the ordering is simply alphabetical.
The first five angular momenta and the corresponding polynomials are listed in the table below.
Symbol | Angular momentum | # | Polynomials |
---|---|---|---|
S | 0 | 1 | \(1\) |
P | 1 | 3 | \(x\), \(y\), \(z\) |
D | 2 | 6 | \(xx\), \(xy\), \(xz\), \(yy\), \(yz\), \(zz\) |
F | 3 | 10 | \(xxx\), \(xxy\), \(xxz\), \(xyy\), \(xyz\), \(xzz\), \(yyy\), \(yyz\), \(yzz\), \(zzz\) |
G | 4 | 15 | \(xxxx\), \(xxxy\), \(xxxz\), \(xxyy\), \(xxyz\), \(xxzz\), \(xyyy\), \(xyyz\), \(xyzz\), \(xzzz\), \(yyyy\), \(yyyz\), \(yyzz\), \(yzzz\), \(zzzz\) |
2.6.2.3. Pure or harmonic basis functions¶
When the polynomial is a real regular solid harmonic, one speaks of pure Gaussian basis functions:
where \(C_{\ell m}\) and \(S_{\ell m}\) are cosine and sine-like real regular solid harmonics, defined as follows:
where \(R_\ell^m\) are the regular solid harmonics, which have in general complex function values. The index \(\ell\) is a zero or positive. Note that \(m\) in \(R_{\ell,+m}\), \(R_{\ell,-m}\), \(C_{\ell m}\), and \(S_{\ell m}\) is moved to the subscript to indicate that these are real functions. The regular solid harmonics are derived from the standard spherical harmonics as follows:
(The Condon–Shortley phase is not used here.) Due to the presence of the factor \(r^\ell\), the real regular solid harmonics are homogeneous polynomials, i.e. linear combinations of the Cartesian polynomials defined in the previous section.
Real regular solid harmonics are used because their normalization over the angular degrees of freedom, i.e.
is compatible with the Cartesian s- and p-type polynomials from the previous section. The normalization constant of a pure Gaussian basis function is:
In practical applications, one always combines all the basis functions of a given angular momentum. A basis specification typically only mentions the total angular momentum, and it is assumed that all polynomials of that order are included in the basis set. The number of basis functions, i.e. the number of polynomials, for a given angular momentum, \(\ell\), is \(2\ell+1\). For the implementation, one must fix a certain ordering of these polynomials. The ordering in HORTON is based on the angular momentum number, \(m\). When \(m>0\), the cosine-like functions is preceded by the sine-like function.
The first five angular momenta and the corresponding polynomials are listed in the table below.
Symbol | Angular momentum | # | Polynomials |
---|---|---|---|
S | 0 | 1 | \(C_{00}=1\) |
P | 1 | 3 | \(C_{10}=z\), \(C_{11}=x\), \(S_{11}=y\) |
D | 2 | 5 | \(C_{20}\), \(C_{21}\), \(S_{21}\), \(C_{22}\), \(S_{22}\) |
F | 3 | 7 | \(C_{30}\), \(C_{31}\), \(S_{31}\), \(C_{32}\), \(S_{32}\), \(C_{33}\), \(S_{33}\) |
G | 4 | 9 | \(C_{40}\), \(C_{41}\), \(S_{41}\), \(C_{42}\), \(S_{42}\), \(C_{43}\), \(S_{43}\), \(C_{44}\), \(S_{44}\) |
2.6.2.4. Transformation from Cartesian to pure basis functions¶
Let us now derive convenient expressions for these real solid harmonics in terms of Cartesian coordinates. The function \(P_\ell^m\) is the associated Legendre Polynomial. For positive \(m\) we have:
where \(P_\ell\) is the ordinary Legendre polynomial of order \(\ell\). Note that the factors \((-1)^m\) are canceled out in the definition of the real solid harmonics. Substitution of these definitions leads to the following form for the regular solid harmonics:
For \(m>0\), the real regular solid harmonics are first written as follows:
It is conventional to factor out the \(z\)-dependent part (which also has some pure \(r\)-dependence). Making use of \(z=r\cos\theta\), one gets:
with
For the \((x,y)\)-dependence one has to define following polynomials for the cosine and sine-like functions, respectively:
where we made use of \(i^k+(-i)^k = e^{k\pi/2} + e^{-k\pi/2} = \cos(k\pi/2)\) and \(i^k-(-i)^k = e^{k\pi/2} - e^{-k\pi/2} = \sin(k\pi/2)\). Putting it all together, we have:
Also for the case \(m=0\), one has a similar form:
These expressions allow one to write the real solid harmonics in terms of a
homogeneous polynomial of Cartesian coordinates. The following table is
generated by the script tools/harmonics.py
, which uses Sympy for the
symbolic manipulations:
Note that these functions are not normalized yet. The formatting of the list above is not great because of the limitations of Sympy’s latex printer.
The script tools/harmonics.py
also generates the transformation matrices
from Cartesian to pure basis functions. These do take into account the
normalization.
These transformations are implemented in horton/cartpure.c
with sparse
matrix products for angular momenta up to \(\ell=9\).
2.6.2.5. Recursion relations for real regular solid harmonics¶
Recurrence relations for \(\Pi_{\ell m}(z,r^2)\) can be derived from the recurrence relations for the associated Legendre polynomials:
Initialization
\[\Pi_{0 0}(z,r^2) & = 1\]For \(\ell \ge 1\)
\[\begin{split}\Pi_{\ell \ell}(z,r^2) & = (2\ell-1)\Pi_{\ell-1, \ell-1}(z,r^2) \\ \Pi_{\ell, \ell-1}(z,r^2) & = z\Pi_{\ell\ell}(z,r^2)\end{split}\]For \(\ell \ge 2\) and \(0 \le m \le \ell-2\)
\[\Pi_{\ell m}(z,r^2) = z \frac{2\ell-1}{\ell-m} \Pi_{\ell-1, m}(z,r^2) - r^2 \frac{\ell+m-1}{\ell-m} \Pi_{\ell-2, m}(z,r^2)\]
Recurrence relations for the functions \(A_m(x,y)\) and \(B_m(x,y)\) are easily derived from scratch:
Hence, one gets:
Initialization
\[\begin{split}A_1(x,y) & = x \\ B_1(x,y) & = y\end{split}\]For \(m \ge 2\)
\[\begin{split}A_m(x,y) & = x A_{m-1}(x,y) - y B_{m-1}(x,y) \\ B_m(x,y) & = y A_{m-1}(x,y) + x B_{m-1}(x,y)\end{split}\]