sisl.GTOrbital
- class sisl.GTOrbital(*args, **kwargs)[source]
Bases:
_ExponentialOrbital
Gaussian type orbital
The
GTOrbital
uses contraction factors and coefficients.The Gaussian type orbital consists of a gaussian 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_l(|\mathbf r|) Y^m_l(\theta, \varphi) \\ R_l(|\mathbf r|) &= \sum c_i e^{-\alpha_i r^2}\end{split}\]Notes
This class is opted for significant changes based on user feedback. If you use it, please give feedback.
- Parameters:
n (
int
, optional) – principal quantum number, default tol + 1
l (
int
) – azimuthal quantum numberm (
int
,optional for l == 0
) – magnetic quantum numberalpha (
float
orarray_like
) – coefficients for the exponential (in 1/Ang^2) Generally the coefficients are given in atomic units, so a conversion from online tables is necessary.coeff (
float
orarray_like
) – contraction factorsR – See
Orbital
for details.q0 (
float
, optional) – initial chargetag (
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
Attributes
Maxmimum radius of orbital
\(\alpha\) factors
\(c\) contraction factors
\(l\) quantum number
\(m\) quantum number
\(n\) quantum number
Initial charge
Named tag of orbital
- copy() _ExponentialOrbital
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
When comparing two orbital radius they are considered equal with a precision of 1e-4 Ang.
- Parameters:
other (
Orbital
) – comparison orbitalpsi – also compare that the full psi are the same
radial – also compare that the radial parts are the same
- 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) 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:
numpy.ndarray
– radial orbital value at point r
- 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 R
Maxmimum radius of orbital
- property alpha
\(\alpha\) factors
- property coeff
\(c\) contraction factors
- property l
\(l\) quantum number
- property m
\(m\) quantum number
- property n
\(n\) quantum number
- property q0
Initial charge
- property tag
Named tag of orbital