Package overview

sisl is a Python package providing access to a large variety of things.

  • creation and manipulation of geometries

  • using orbitals for basis-set visualization purposes

  • creating tight-binding matrices (Hamiltonian and DynamicalMatrix etc.) and manipulations (e.g. atomic or orbital sub-spaces)

  • managing 3D real-space quantities such as density and potential grids

  • unified interface for interacting with a broad range of electronic structure codes (see sisl.io for complete details)

  • command line interfaces for parsing files on the fly for fast exploration of calculations

Units

sisl assumes the user is careful in using consistent units.

The internal units in sisl are:

  • Ang (Angstrom)

  • eV (electron volt)

If you wish to introduce a specific unit, and its default, please open an issue.

Data structures

sisl provides a broad set of datastructures, each providing a unique set of capabilities.

The primary data structures includes:

Class

Description

Orbital

Specifications of orbitals (sub-classed for various functionality)

Atom

Specifications of single atoms, species and orbitals

Atoms

A collection of Atom objects with smart storage (no coordinates)

Lattice

Handling lattice-vectors, manipulations of lattices

Geometry

Lattice vectors + atoms and coordinates

Grid

Real space quantities for manipulation of 3D grid-data

Sile

IO-interactions, reading/writing electronic structure output/input

These primary classes, which covers the basic usage of sisl, has a dependency graph as shown below:

../_images/basic_deps.svg

The vast majority of other data structures in sisl relies on these. For instance Hamiltonian relies on a Geometry object.