sisl.HydrogenicOrbital
- class sisl.HydrogenicOrbital(n: int, l: int, m: int, Z: float, **kwargs)
Bases:
AtomicOrbital
A hydrogen-like atomic orbital defined by an effective atomic number Z in addition to the usual quantum numbers (n, l, m).
A hydrogenic atom (Hydrogen-like) is an atom with a single valence electron.
The returned orbital is properly normalized, see [HydrogenicO] for details.
The orbital has the familiar spherical shape
\[\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_{nl}(|\mathbf r|) Y^m_l(\theta, \varphi) \\ R_{nl}(|\mathbf r|) &= -\sqrt{\big(\frac{2Z}{na_0}\big)^3 \frac{(n-l-1)!}{2n(n+l)!}} e^{-Zr/(na_0)} \big( \frac{2Zr}{na_0} \big)^l L_{n-l-1}^{(2l+1)} \big( \frac{2Zr}{na_0} \big)\end{split}\]With \(L_{n-l-1}^{(2l+1)}\) is the generalized Laguerre polynomials.
References
- Parameters:
n – principal quantum number
l – angular momentum quantum number
m – magnetic quantum number
Z – effective atomic number
**kwargs – See
Orbital
for details.
Examples
>>> carbon_pz = HydrogenicOrbital(2, 1, 0, 3.2)
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 named specification of the atomic orbital
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 the wavefunction \(f(\mathbf r)\)
scale
(scale)Scale the orbital by extending R by
scale
set_radial
(*args, **kwargs)Update the internal radial function used as a \(f(|\mathbf r|)\)
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
Attributes
Whether this is polarized shell or not
Maxmimum radius of orbital
\(l\) quantum number
\(m\) quantum number
\(n\) shell
Orbital with radial part
Initial charge
Named tag of orbital
\(\zeta\) shell
- copy() HydrogenicOrbital
Create an exact copy of this object
- equal(other, psi: bool = False, radial: bool = False)
Compare two orbitals by comparing their radius, and possibly the radial and psi functions
- Parameters:
other (
Orbital
) – comparison orbitalpsi – also compare that the full psi are the same
radial – also compare that the radial parts are the same
- name(tex=False)
Return named specification of the atomic orbital
- 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:
numpy.ndarray
– basis function value at point r
- 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 origintheta (
array_like
) – azimuthal angle in the \(xy\) plane (from \(x\))phi (
array_like
) – polar angle from \(z\) axiscos_phi – whether phi is actually \(cos(\phi)\) which will be faster because cos is not necessary to call.
- Returns:
numpy.ndarray
– basis function value at point r
- radial(r, *args, **kwargs)
Calculate the radial part of the wavefunction \(f(\mathbf r)\)
The position r is a vector from the origin of this orbital.
- Parameters:
r (
array_like
) – radius from the orbital origin- Returns:
numpy.ndarray
– radial orbital value at point r
- set_radial(*args, **kwargs)
Update the internal radial function used as a \(f(|\mathbf r|)\)
See
SphericalOrbital.set_radial
where these arguments are passed to.
- 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\) axiscos_phi – whether phi is actually \(cos(\phi)\) which will be faster because cos is not necessary to call.
- Returns:
numpy.ndarray
– spherical harmonics at angles \(\theta\) and \(\phi\)
- toGrid(precision: float = 0.05, c: float = 1.0, R=None, dtype=np.float64, atom=1)
Create a Grid with only this orbital wavefunction on it
- Parameters:
precision (
float
, optional) – used separation in theGrid
between voxels (in Ang)c (
float
orcomplex
, optional) – coefficient for the orbitalR (
float
, optional) – box size of the grid (default to the orbital range)dtype (
numpy.dtype
, optional) – the used separation in theGrid
between voxelsatom (optional) – atom associated with the grid; either an atom instance or something that
Atom(atom)
would convert to a proper atom.
- toSphere(center=None)
Return a sphere with radius equal to the orbital size
- Returns:
Sphere
– sphere with a radius equal to the radius of this orbital
- property P
Whether this is polarized shell or not
- property R
Maxmimum radius of orbital
- property l
\(l\) quantum number
- property m
\(m\) quantum number
- property n
\(n\) shell
- property orb
Orbital with radial part
- property q0
Initial charge
- property tag
Named tag of orbital
- property zeta
\(\zeta\) shell