bfit.density
¶
Slater Atomic Density Module.
Module Contents¶
Classes¶
Atomic Density Class. |
-
class
bfit.density.
SlaterAtoms
(element, anion=False, cation=False)[source]¶ Atomic Density Class.
Reads and parses information from the .slater file [1], [2] of an atom and stores it inside this class. Elements supported by default from “./bfit/data/examples/” range from Hydrogen to Xenon.
Each electron of the atom is associated to a molecular spin-orbital written as:
\[\phi_i(r, \theta, \phi) = \bigg[\sum_{j=1}^{M_i} c^i_j R_{n^i_j}(r, \alpha^i_j) \bigg] Y_{l_i}^{m_i}(\theta, \phi) \sigma(m_i),\]where \(R_{n^i_j}(r)\) is a Slater-type function with quantum number \(n^i_j\), \(c^i_j\) is the coefficient of the jth Slater-type function, \(\alpha_j^i\) is the exponent of the jth Slater-type function, \(Y_{l_i}^{m_i}\) is the spherical harmonic with complex form, angular momentum \(l_i\) determined by the electron in the electron configuration and \(m_i\) is the spin determined by applying Hund’s rule to the electron configuration, and \(\sigma\) is the spin-function determined from applying Hund’s rule to the electron.
References
- 1
Koga, T. , Kanayama, K. , Watanabe, S. and Thakkar, A. J. (1999), Analytical Hartree–Fock wave functions subject to cusp and asymptotic constraints: He to Xe, Li+ to Cs+, H− Int. J. Quantum Chem., 71: 491-497. doi:10.1002/(SICI)1097-461X(1999)71:6<491::AID-QUA6>3.0.CO;2-T
- 2
Koga, T., Kanayama, K., Watanabe, T. et al. Analytical Hartree–Fock wave functions for the atoms Cs to Lr. Theor Chem Acc 104, 411–413 (2000). https://doi.org/10.1007/s002140000150
Construct SlaterAtoms object.
- Parameters
element (str) – Symbol of element.
anion (bool) – If true, then the anion of element is used. Some elements do not have anion information.
cation (bool) – If true, then the cation of element is used. Some elements do not have cation information.
-
property
configuration
(self)[source]¶ Return string representing the electron configuration of the atom.
The electron configuration of the atom is written in form that writes out the atomic subshells with the number of electrons assigned to that atomic subshell. For example, Beryllium returns “1S(2)2S(2)”.
-
property
orbitals
(self)[source]¶ List of strings representing each of the atomic subshells in the electron configuration.
For example, Beryllium returns [“1S”, “2S”] in its electron configuration. Ordered based on “S”, “P”, “D”, etc.
-
property
orbitals_occupation
(self)[source]¶ Array returning number of electrons in each of the orbitals in the electron configuration.
For example, Beryllium returns ndarray([[2], [2]]).
-
property
orbitals_basis
(self)[source]¶ Return grouping of Slater-type functions to the azimuthal quantum number (“S”, “P”, …).
Dictionary mapping type of orbital (e.g. “S”, “P”) to the number and type of the \(N\) Slater-type functions. For example, Helium would map “S” to [‘2S’, ‘1S’, ‘1S’, ‘1S’, ‘2S’]. This implies that all molecular orbitals corresponding to s-orbital will have it’s radial component expanded in that Slater-type functions according to the label.
-
property
basis_numbers
(self)[source]¶ Return type of Slater-type orbital to the type, e.g. “S”.
Dictionary mapping type of orbital (e.g. “S”, “P”) to array containing \(n\) of the \(N\) Slater-type functions. These play the role of the principal quantum number to each Slater-type function. With the Helium example, “S” will map to [[2], [1], [1], [1], [2]].
-
property
orbitals_exp
(self)[source]¶ Exponent of each Slater-type orbital grouped by type of orbital.
Dictionary mapping type of orbitals (e.g. “S”, “P”) to the exponent \(\alpha_j^i\) of each of the \(M_i\) Slater-type function.
-
property
orbitals_coeff
(self)[source]¶ Coefficients of each Slater-type orbital grouped by type of orbital.
Dictionary mapping the molecular orbital (e.g. “1S”, “2S”, ..) to the coefficients \(c^i_j\) of expansion w.r.t. the \(M_i\) Slater-type function.
-
property
orbitals_cusp
(self)[source]¶ Cusp values of each of the N Slater-type orbital.
Same ordering as orbitals. Does not exist for Heavy atoms past Xenon.
-
static
radial_slater_orbital
(exponent, number, points)[source]¶ Compute the radial component of Slater-type orbitals on the given points.
The radial component of the Slater-type orbital is defined as:
\[R(r) = N r^{n-1} e^{- \alpha r}\]where, \(n\) is the principal quantum number of that orbital, \(N\) is the normalizing constant, \(r\) is the radial point, distance to the origin, and \(\alpha\) is the zeta exponent of that orbital.
- Parameters
exponent (ndarray, (M, 1)) – The zeta exponents \(\zeta\) of \(M\) Slater orbitals.
number (ndarray, (M, 1)) – The principal quantum numbers \(n\) of \(M\) Slater orbitals.
points (ndarray, (N,)) – The radial \(r\) grid points.
- Returns
slater – The \(M\) Slater-type orbitals evaluated on \(N\) grid points.
- Return type
ndarray, (N, M)
Notes
The principal quantum number of all functions are stored in basis_numbers.
The alpha exponents of all functions are stored in the attribute orbitals_exp.
-
phi_matrix
(self, points, deriv=False)[source]¶ Compute the linear combination of Slater-type functions on the given points.
Each row corresponds to a point on the grid, represented as \(r\) and each column is represented as a linear combination of Slater-type atomic orbitals of the form:
\[\sum_{i=1}^{M} c_i R(r, n_i, \alpha_i)\]where, \(c_i\) is the coefficient of the Slater-type orbital, \(\alpha_i\) is the zeta exponent attached to the Slater-type orbital, \(n_i\) is the principal quantum number attached to the Slater-type orbital, \(R(r, n_i, C_i)\) is the radial component of the Slater-type function, \(M\) is the number of orbitals.
- Parameters
points (ndarray, (N,)) – The radial grid points.
deriv (bool) – If true, use the derivative of the slater-orbitals.
- Returns
phi_matrix – The linear combination of Slater-type orbitals evaluated on the \(N\) grid points, and \(M\) is the number of atomic subshells (ignoring spin) within the electron configuration. The order is S orbitals, then P then D and spin is ignored.
- Return type
ndarray(N, K)
Notes
At r = 0, the derivative of slater-orbital is undefined and this function returns zero instead. See “derivative_radial_slater_type_orbital”.
-
atomic_density
(self, points, mode='total')[source]¶ Compute atomic density on the given points.
The total density is written as a linear combination of molecular orbitals squared whose coefficients is the orbital occupation number of the electron configuration:
\[\sum n_i |\phi_i(r)|^2\]where, \(n_i\) is the number of electrons in the ith molecular orbital, \(\phi_i(r)\) is the ith molecular orbital, whose radial component is a linear combination of Slater-type functions evaluated on the point \(r\) and whose angles within the spherical coordinates are integrated.
For core and valence density, please see more Info below.
- Parameters
points (ndarray, (N,)) – The radial grid points.
mode (str) – The type of atomic density, which can be “total”, “valence” or “core”.
- Returns
dens – The atomic density on the grid points.
- Return type
ndarray, (N,)
Notes
The core density and valence density is respectively written as:
\[\begin{split}\begin{align*} \rho^{core}(r) &= \sum n_i (1 - e^{-|e_i - e_{homo}|^2}) |\phi_i(r)| \\ \rho^{valence}(r) &= \sum n_i e^{-|e_i - e_{homo}|^2} |\phi_i(r)| \end{align*}\end{split}\]where, \(e_i\) is the energy of the orbital i. \(e_{HOMO}\) is the energy of the highest occupying orbital.
-
static
derivative_radial_slater_type_orbital
(exponent, number, points)[source]¶ Compute the derivative of the radial component of Slater-type function on the given points.
The derivative of the Slater-type function is defined as:
\[\frac{d R(r)}{dr} = \bigg(\frac{n-1}{r} - \alpha \bigg) N r^{n-1} e^{- \alpha r},\]where \(n\) is the principal quantum number of that orbital, \(N\) is the normalizing constant, \(r\) is the radial point, distance to the origin, and \(\alpha\) is the zeta exponent of that orbital.
- Parameters
exponent (ndarray, (M, 1)) – The zeta exponents of Slater orbitals.
number (ndarray, (M, 1)) – The principle quantum numbers of Slater orbitals.
points (ndarray, (N,)) – The radial grid points. If points contain zero, then it is undefined at those points and set to zero.
- Returns
slater – The Slater-type orbitals evaluated on the \(N\) grid points.
- Return type
ndarray, (N, M)
Notes
At r = 0, the derivative is undefined and this function returns zero instead.
References
See wikipedia page on “Slater-Type orbitals”.