Basic classes

sisl provides basic functionality for interacting with orbitals, atoms, geometries, unit cells and grid functions.

Simple objects

PeriodicTable()

Periodic table for creating an Atom, or retrieval of atomic information via atomic numbers

Atom(*args, **kwargs)

Atomic information for a single atomic species

Atoms([atoms, na])

Efficient collection of Atom objects

Geometry(xyz[, atoms, lattice, names])

Holds atomic information, coordinates, species, lattice vectors

Lattice(cell[, nsc, origin, boundary_condition])

A cell class to retain lattice vectors and a supercell structure

BoundaryCondition(value[, names, module, ...])

Enum for boundary conditions

Grid(shape[, bc, lattice, dtype, geometry])

Real-space grid information with associated geometry.

Orbitals

Each of the following orbitals are specialized for various use cases.

Orbital(R[, q0, tag])

Base class for orbital information.

SphericalOrbital(l[, rf_or_func, q0, tag])

An arbitrary orbital class which only contains the harmonical part of the wavefunction where \(\phi(\mathbf r)=f(|\mathbf r|)Y_l^m(\theta,\varphi)\)

AtomicOrbital(*args, **kwargs)

A projected atomic orbital consisting of real harmonics

HydrogenicOrbital(n, l, m, Z, **kwargs)

A hydrogen-like atomic orbital defined by an effective atomic number Z in addition to the usual quantum numbers (n, l, m).

GTOrbital(*args, **kwargs)

Gaussian type orbital

STOrbital(*args, **kwargs)

Slater type orbital

Advanced classes

The physical matrices used internally in sisl are constructed based on these base classes. However, it may be beneficial to read the specific matrix in Physical quantites.

Quaternion([angle, v, rad])

Quaternion object to enable easy rotational quantities.

SparseCSR(arg1[, dim, dtype, nnzpr, nnz])

A compressed sparse row matrix, slightly different than csr_matrix.

SparseAtom(geometry[, dim, dtype, nnzpr])

Sparse object with number of rows equal to the total number of atoms in the Geometry

SparseOrbital(geometry[, dim, dtype, nnzpr])

Sparse object with number of rows equal to the total number of orbitals in the Geometry

Utility classes

A set of classes are utility classes that are used throughout the sisl code and using them will be encouraged in combination with sisl.

In particular oplist is useful when calculating averages in Brillouin zones (see Brillouin zone).

oplist([iterable])

list with element-wise operations

PropertyDict

Simple dictionary which may access items as properties as well