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 to l + 1

  • 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^2) 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

R

Maxmimum radius of orbital

alpha

\(\alpha\) factors

coeff

\(c\) contraction factors

l

\(l\) quantum number

m

\(m\) quantum number

n

\(n\) quantum number

q0

Initial charge

tag

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()

Create an exact copy of this object

equal(other, psi=False, radial=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 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

property l

\(l\) quantum number

property m

\(m\) quantum number

property n

\(n\) quantum number

name(tex=False)

Return a named specification of the orbital (tag)

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

numpy.ndarray

psi_spher(r, theta, phi, cos_phi=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 \(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

basis function value at point r

Return type

numpy.ndarray

property q0

Initial charge

radial(r, *args, **kwargs)

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

numpy.ndarray

scale(scale)

Scale the orbital by extending R by scale

spher(theta, phi, cos_phi=False)

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

spherical harmonics at angles \(\theta\) and \(\phi\)

Return type

numpy.ndarray

property tag

Named tag of orbital

toGrid(precision=0.05, c=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 (numpy.dtype, optional) – the used separation in the Grid between voxels

  • atom (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 with a radius equal to the radius of this orbital

Return type

Sphere