AtomicOrbital¶
-
class
sisl.
AtomicOrbital
(*args, **kwargs)[source]¶ A projected atomic orbital consisting of real harmonics
The
AtomicOrbital
is a specification of theSphericalOrbital
by assigning the magnetic quantum number \(m\) to the object.AtomicOrbital
should always be preferred over theSphericalOrbital
because it explicitly contains all quantum numbers.Parameters: - *args : list of arguments
list of arguments can be in different input options
- q0 : float, optional
initial charge
- tag : str, optional
user defined tag
Examples
>>> r = np.linspace(0, 5, 50) >>> f = np.exp(-r) >>> # n, l, m, [Z, [P]] >>> orb1 = AtomicOrbital(2, 1, 0, 1, (r, f)) >>> orb2 = AtomicOrbital(n=2, l=1, m=0, Z=1, (r, f)) >>> orb3 = AtomicOrbital('2pzZ', (r, f)) >>> orb4 = AtomicOrbital('2pzZ1', (r, f)) >>> orb5 = AtomicOrbital('pz', (r, f)) >>> orb2 == orb3 True >>> orb2 == orb4 True >>> orb2 == orb5 True
Attributes: - R : float
maximum radius (in Ang)
- n : int
principal quantum number
- l : int
azimuthal quantum number
- m : int
magnetic quantum number
- Z : int
zeta shell
- P : bool
whether this corresponds to a polarized shell (
True
)- f : func
interpolation function that returns f(r) for a given radius
- q0 : float
initial electronic charge
- tag : str
user defined tag
Attributes
P
R
Z
f
l
m
n
orb
q0
tag
Methods
__init__
(*args, **kwargs)Initialize atomic orbital object 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[, is_radius])Calculate the radial part of the wavefunction \(f(\mathbf R)\) scale
(scale)Scale the orbital by extending R by scale
set_radial
(*args)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, Z])Create a Grid with only this orbital wavefunction on it toSphere
([center])Return a sphere with radius equal to the orbital size -
P
¶
-
R
¶
-
Z
¶
-
equal
(other, psi=False, radial=False)[source]¶ Compare two orbitals by comparing their radius, and possibly the radial and psi functions
Parameters: - other : Orbital
comparison orbital
- psi : bool, optional
also compare that the full psi are the same
- radial : bool, optional
also compare that the radial parts are the same
-
f
¶
-
l
¶
-
m
¶
-
n
¶
-
orb
¶
-
psi
(r)[source]¶ 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: - psi : the orbital value at point r
-
psi_spher
(r, theta, phi, cos_phi=False)[source]¶ 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 \(x-y\) plane (from \(x\))
- phi : array_like
polar angle from \(z\) axis
- cos_phi : bool, optional
whether phi is actually \(cos(\phi)\) which will be faster because cos is not necessary to call.
Returns: - psi : the orbital value at point r
-
q0
¶
-
radial
(r, is_radius=True)[source]¶ 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, for
is_radius=False
r must be vectors- is_radius : bool, optional
whether r is a vector or the radius
Returns: - f : the orbital value at point r
-
set_radial
(*args)[source]¶ 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=False)[source]¶ Calculate the spherical harmonics of this orbital at a given point (in spherical coordinates)
Parameters: - theta : array_like
azimuthal angle in the \(x-y\) plane (from \(x\))
- phi : array_like
polar angle from \(z\) axis
- cos_phi : bool, optional
whether phi is actually \(cos(\phi)\) which will be faster because cos is not necessary to call.
Returns: - spher : the spherical harmonics at angles \(\theta\) and \(\phi\).
-
tag
¶
-
toGrid
(precision=0.05, c=1.0, R=None, dtype=<class 'numpy.float64'>, Z=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 : numpy.dtype, optional
the used separation in the
Grid
between voxels- Z : int, optional
atomic number associated with the grid
-
toSphere
(center=None)¶ Return a sphere with radius equal to the orbital size
Returns: - Sphere : the sphere with a radius equal to the radius of this orbital