sisl (sisl)

sisl is an electronic structure package which may interact with tight-binding and DFT matrices alike.

The full sisl package consistent of a large variety of classes and methods which enables large-scale tight-binding calculations as well as post-processing DFT calculations.

Below a set of classes that are the basis of everything in sisl is present.

Generic classes

PeriodicTable

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

Orbital(R[, q0, tag])

Base class for orbital information.

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

An arbitrary orbital class where \(\phi(\mathbf r)=f(|\mathbf r|)Y_l^m(\theta,\varphi)\)

AtomicOrbital(*args, **kwargs)

A projected atomic orbital consisting of real harmonics

Atom(Z[, orbital, mass, tag])

Atomic information, mass, name number of orbitals and ranges

Atoms([atom, na])

A list-like object to contain a list of different atoms with minimum data duplication.

Geometry(xyz[, atom, sc, names])

Holds atomic information, coordinates, species, lattice vectors

SuperCell(cell[, nsc, origo])

A cell class to retain lattice vectors and a supercell structure

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

Real-space grid information with associated geometry.

Below are a group of advanced classes rarely needed. A lot of the sub-classes extend these classes, or use them intrinsically. However, they are not necessarily intended for users use.

Advanced classes

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

Selector([routines, ordered])

Base class for implementing a selector of class routines