5.1. kwant.system – Low-level interface of systems

Low-level interface of systems

This module is the binding link between constructing tight-binding systems and doing calculations with these systems. It defines the interface which any problem-solving algorithm should be able to access, independently on how the system was constructed. This is achieved by using python abstract base classes (ABC) – classes, which help to ensure that any derived classes implement the necessary interface.

Any system which is provided to a solver should be derived from the appropriate class in this module, and every solver can assume that its input corresponds to the interface defined here.

In practice, very often Kwant systems are finalized builders (i.e. kwant.builder.FiniteSystem or kwant.builder.InfiniteSystem) and offer some additional attributes.

Sites

Site(family, tag[, _i_know_what_i_do])

A site, member of a SiteFamily.

SiteArray(family, tags)

An array of sites, members of a SiteFamily.

SiteFamily(canonical_repr, name, norbs)

Abstract base class for site families.

Symmetries

Symmetry()

Abstract base class for spatial symmetries.

NoSymmetry()

A symmetry with a trivial symmetry group.

Systems

System()

Abstract general low-level system.

VectorizedSystem()

Abstract general low-level system with support for vectorization.

InfiniteSystem()

Abstract infinite low-level system.

InfiniteVectorizedSystem()

Abstract vectorized infinite low-level system.

FiniteSystem()

FiniteVectorizedSystem()

PrecalculatedLead([modes, selfenergy])

A general lead defined by its self energy.

Mixin Classes

FiniteSystemMixin()

Abstract finite low-level system, possibly with leads.

InfiniteSystemMixin()