sisl.STOrbital
- class sisl.STOrbital(*args, **kwargs)[source]
Bases:
_ExponentialOrbital
Slater type orbital
The
STOrbital
uses contraction factors and coefficients.The Slater type orbital consists of an exponential radial part and a spherical harmonic part that only depends on angles.
\[\begin{split}Y^m_l(\theta,\varphi) &= (-1)^m\sqrt{\frac{2l+1}{4\pi} \frac{(l-m)!}{(l+m)!}} e^{i m \theta} P^m_l(\cos(\varphi)) \\ \phi_{lmn}(\mathbf r) &= R_n(|\mathbf r|) Y^m_l(\theta, \varphi) \\ R_n(|\mathbf r|) &= r^{n-1} \sum c_i e^{-\alpha_i r}\end{split}\]Notes
This class is opted for significant changes based on user feedback. If you use it, please give feedback.
- Parameters:
n (int) – principal quantum number
l (int) – azimuthal quantum number
m (int, optional for l == 0) – magnetic quantum number
alpha (float or array_like) – coefficients for the exponential (in 1/Ang) Generally the coefficients are given in atomic units, so a conversion from online tables is necessary.
coeff (float or array_like) – contraction factors
R – See
Orbital
for details.q0 (float, optional) – initial charge
tag (str, optional) – user defined tag
Methods
copy
()Create an exact copy of this object
equal
(other[, psi, radial])Compare two orbitals by comparing their radius, and possibly the radial and psi functions
name
([tex])Return a named specification of the orbital (
tag
)psi
(r)Calculate \(\phi(\mathbf r)\) at a given point (or more points)
psi_spher
(r, theta, phi[, cos_phi])Calculate \(\phi(|\mathbf r|, \theta, \phi)\) at a given point (in spherical coordinates)
radial
(r, *args, **kwargs)Calculate the radial part of spherical orbital \(R(\mathbf r)\)
scale
(scale)Scale the orbital by extending R by
scale
spher
(theta, phi[, cos_phi])Calculate the spherical harmonics of this orbital at a given point (in spherical coordinates)
toGrid
([precision, c, R, dtype, atom])Create a Grid with only this orbital wavefunction on it
toSphere
([center])Return a sphere with radius equal to the orbital size
Maxmimum radius of orbital
\(\alpha\) factors
\(c\) contraction factors
\(l\) quantum number
\(m\) quantum number
\(n\) quantum number
Initial charge
Named tag of orbital
- property R
Maxmimum radius of orbital
- __init__(*args, **kwargs)
Initialize orbital object
- property alpha
\(\alpha\) factors
- property coeff
\(c\) contraction factors
- copy() _ExponentialOrbital
Create an exact copy of this object
- Parameters:
orbital (_ExponentialOrbital)
- Return type:
_ExponentialOrbital
- equal(other, psi: bool = False, radial: bool = False)
Compare two orbitals by comparing their radius, and possibly the radial and psi functions
When comparing two orbital radius they are considered equal with a precision of 1e-4 Ang.
- property l
\(l\) quantum number
- property m
\(m\) quantum number
- property n
\(n\) quantum number
- psi(r)
Calculate \(\phi(\mathbf r)\) at a given point (or more points)
The position r is a vector from the origin of this orbital.
- Parameters:
r (array_like) – the vector from the orbital origin
- Returns:
basis function value at point r
- Return type:
- psi_spher(r, theta, phi, cos_phi: bool = False)
Calculate \(\phi(|\mathbf r|, \theta, \phi)\) at a given point (in spherical coordinates)
This is equivalent to
psi
however, the input is given in spherical coordinates.- Parameters:
r (array_like) – the radius from the orbital origin
theta (array_like) – azimuthal angle in the \(xy\) plane (from \(x\))
phi (array_like) – polar angle from \(z\) axis
cos_phi (bool) – whether phi is actually \(cos(\phi)\) which will be faster because cos is not necessary to call.
- Returns:
basis function value at point r
- Return type:
- property q0
Initial charge
- radial(r, *args, **kwargs) ndarray
Calculate the radial part of spherical orbital \(R(\mathbf r)\)
The position r is a vector from the origin of this orbital.
- Parameters:
r (array_like) – radius from the orbital origin
*args – arguments passed to the radial function
**args – keyword arguments passed to the radial function
- Returns:
radial orbital value at point r
- Return type:
- spher(theta, phi, cos_phi: bool = False)
Calculate the spherical harmonics of this orbital at a given point (in spherical coordinates)
- Parameters:
theta (array_like) – azimuthal angle in the \(xy\) plane (from \(x\))
phi (array_like) – polar angle from \(z\) axis
cos_phi (bool) – whether phi is actually \(cos(\phi)\) which will be faster because cos is not necessary to call.
- Returns:
spherical harmonics at angles \(\theta\) and \(\phi\)
- Return type:
- property tag
Named tag of orbital
- toGrid(precision: float = 0.05, c: float = 1.0, R=None, dtype=<class 'numpy.float64'>, atom=1)
Create a Grid with only this orbital wavefunction on it
- Parameters:
precision (float, optional) – used separation in the
Grid
between voxels (in Ang)c (float or complex, optional) – coefficient for the orbital
R (float, optional) – box size of the grid (default to the orbital range)
dtype (dtype, optional) – the used separation in the
Grid
between voxelsatom (optional) – atom associated with the grid; either an atom instance or something that
Atom(atom)
would convert to a proper atom.