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

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.