Atom

class sisl.Atom(Z, orbital=None, mass=None, tag=None, **kwargs)[source]

Atomic information, mass, name number of orbitals and ranges

Object to handle atomic mass, name, number of orbitals and orbital range.

The Atom object handles the atomic species with information such as

  • atomic number
  • mass
  • number of orbitals
  • radius of each orbital

The Atom object is pickle-able.

Parameters:
Z : int or str

key lookup for the atomic specie, Atom[key]

orbital : list of Orbital or float, optional

all orbitals associated with this atom. Default to one orbital.

mass : float, optional

the atomic mass, if not specified uses the mass from PeriodicTable

tag : str, optional

arbitrary designation for user handling similar atoms with different settings (defaults to the label of the atom)

Attributes:
Z : int

atomic number

no : int

Number of orbitals on this atom

R : numpy.ndarray

Orbital radius

q0 : numpy.ndarray

Orbital initial charges

mass : float

mass of Atom

Attributes

R Orbital radius
no Number of orbitals on this atom
q0 Orbital initial charges
symbol Return short atomic name (Au==79).

Methods

__init__(Z[, orbital, mass, tag]) Initialize self.
copy([Z, orbital, mass, tag]) Return copy of this object
equal(other[, R, psi]) True if other is the same as this atomic specie
iter([group]) Loop on all orbitals in this atom
maxR() Return the maximum range of orbitals.
radius([method]) Return the atomic radii of the atom (in Ang)
remove(orbitals) Return the same atom without a specific set of orbitals
scale(scale) Scale the atomic radii and return an equivalent atom.
sub(orbitals) Return the same atom with only a subset of the orbitals present
toSphere([center]) Return a sphere with the maximum orbital radius equal
R

Orbital radius

copy(Z=None, orbital=None, mass=None, tag=None)[source]

Return copy of this object

equal(other, R=True, psi=False)[source]

True if other is the same as this atomic specie

Parameters:
other : Atom

the other object to check againts

R : bool, optional

if True the equality check also checks the orbital radii, else they are not compared

psi : bool, optional

if True, also check the wave-function component of the orbitals, see Orbital.psi

iter(group=False)[source]

Loop on all orbitals in this atom

Parameters:
group : bool, optional

if two orbitals share the same radius one may be able to group two orbitals together

Returns:
Orbital : the current orbital, if group is True this is a list of orbitals,

otherwise a single orbital is returned

maxR()[source]

Return the maximum range of orbitals.

no

Number of orbitals on this atom

q0

Orbital initial charges

radius(method='calc')[source]

Return the atomic radii of the atom (in Ang)

See PeriodicTable.radius for details on the argument.

remove(orbitals)[source]

Return the same atom without a specific set of orbitals

Parameters:
orbitals : array_like

indices of the orbitals to remove

Returns:
Atom : with only the subset of orbitals

See also

sub
retain a selected set of orbitals
scale(scale)[source]

Scale the atomic radii and return an equivalent atom.

Parameters:
scale : float

the scale factor for the atomic radii

sub(orbitals)[source]

Return the same atom with only a subset of the orbitals present

Parameters:
orbitals : array_like

indices of the orbitals to retain

Returns:
Atom : with only the subset of orbitals
Raises:
ValueError : if the number of orbitals removed is too large or some indices are outside the allowed range
symbol

Return short atomic name (Au==79).

toSphere(center=None)[source]

Return a sphere with the maximum orbital radius equal

Returns:
Sphere : the sphere with a radius equal to the maximum radius of the orbitals