Orbital

class sisl.Orbital(R, q0=0.0, tag='')[source]

Base class for orbital information.

The orbital class is still in an experimental stage and will probably evolve over some time.

Parameters:
R : float

maximum radius

q0 : float, optional

initial charge

tag : str, optional

user defined tag

Examples

>>> orb = Orbital(1)
>>> orb_tag = Orbital(2, tag='range=2')
>>> orb.R == orb_tag.R / 2
True
>>> orbq = Orbital(2, 1)
>>> orbq.q0
1.
Attributes:
R : float

maximum radius (in Ang)

q0 : float

initial electronic charge

tag : str

user defined tag

Attributes

R
q0
tag

Methods

__init__(R[, q0, tag]) Initialize 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 a named specification of the orbital (tag)
psi(r, *args, **kwargs) Calculate \(\phi(\mathbf R)\) for Cartesian coordinates
psi_spher(r, theta, phi, *args, **kwargs) Calculate \(\phi(|\mathbf R|, \theta, \phi)\) for 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
spher(theta, phi, *args, **kwargs) 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
R
copy()[source]

Create an exact copy of this object

equal(other, psi=False, radial=False)[source]

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

name(tex=False)[source]

Return a named specification of the orbital (tag)

psi(r, *args, **kwargs)[source]

Calculate \(\phi(\mathbf R)\) for Cartesian coordinates

psi_spher(r, theta, phi, *args, **kwargs)[source]

Calculate \(\phi(|\mathbf R|, \theta, \phi)\) for spherical coordinates

q0
radial(r, *args, **kwargs)[source]

Calculate the radial part of the wavefunction \(f(\mathbf R)\)

scale(scale)[source]

Scale the orbital by extending R by scale

spher(theta, phi, *args, **kwargs)[source]

Calculate the spherical harmonics of this orbital at a given point (in spherical coordinates)

tag
toGrid(precision=0.05, c=1.0, R=None, dtype=<class 'numpy.float64'>, Z=1)[source]

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)[source]

Return a sphere with radius equal to the orbital size

Returns:
Sphere : the sphere with a radius equal to the radius of this orbital