sisl.Orbital
- class sisl.Orbital(R: float | dict | None, q0: float = 0.0, tag: str = '')
Bases:
object
Base class for orbital information.
The orbital class is still in an experimental stage and will probably evolve over some time.
- Parameters:
R – maximum radius of interaction. In case of a dict the values will be passed to the
radial_minimize_range
method. Currently allowed arguments are:contains
: R will be selected such that the integrated functionfunc
will contain this percentage of the full integral (determined at
maxR
maxR
: maximum R to search in, default to 100 Angfunc
: the function that will be integrated and checked forcontains
See examples for details. If None the default will be
{'contains': 0.9999}
. If a negative number is passed, it will be converted to{'contains':-R}
A dictionary will only make sense if the class has the_radial
function associated.q0 – initial charge
tag – 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.
Optimizing the R range for the radial function integral \(\int\mathrm dr radial(r)^2 r ^2\) >>> R = { … “contains”: 0.9999, … “func”: lambda radial, r: (radial(r) * r)**2, … “maxR”: 100 … } >>> orb = Orbital(R)
The default dictionary if none is passed will be:
dict(contains=0.9999, func=lambda radial, r: abs(radial(r)), maxR=100)
The optimization problem depends heavily on thefunc
since the tails are important for real-space quantities.See also
SphericalOrbital
orbitals with a spherical basis set
AtomicOrbital
specification of n, m, l quantum numbers + a spherical basis set
HydrogenicOrbital
simplistic orbital model of Hydrogenic-like basis sets
GTOrbital
Gaussian-type orbitals
STOrbital
Slater-type orbitals
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, *args, **kwargs)Calculate \(\phi(\mathbf r)\) for Cartesian coordinates
scale
(scale)Scale the orbital by extending R by
scale
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
Initial charge
Named tag of orbital
- equal(other, psi: bool = False, radial: bool = 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 orbitalpsi – also compare that the full psi are the same
radial – also compare that the radial parts are the same
- toGrid(precision: float = 0.05, c: float = 1.0, R=None, dtype=np.float64, atom=1)[source]
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)[source]
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 q0
Initial charge
- property tag
Named tag of orbital