tbkit#

tbkit is a Python package to build and solve Tight-Binding models, written in fully vectorized NumPy. It’s built for physics students working through a textbook problem, curious learners exploring a topic on their own, and educators building a demonstration.

Start with the Tutorial, browse the example gallery, or jump straight to the tbkit package API reference.

tbkit is composed of the following classes and modules:

  • Lattice

  • System

  • KSpace

  • Plot

  • Propagation

  • Save

  • lattices

  • dos

tbkit main features:

  • Complex lattice structures.

  • Complex-valued onsite energies and hoppings.

  • Hermitian and non-Hermitian Tight-Binding Hamiltonians.

  • Sublattices.

  • Hoppings defined by their type, tags, and angles.

  • Any type of hoppings:

    • Neighbors hoppings,

    • Next-neighbors hoppings,

    • Next-next-neighbors hoppings,

    • etc..

  • Implementation of onsite energies and hopping patterns:

    • Dimerization defects.

    • Magnetic field (Peierls substitution).

    • Strain.

    • Hopping disorder.

    • Onsite disorder.

  • Reciprocal-space Bloch Hamiltonians and band structures.

  • Berry curvature and Chern numbers.

  • An optional spin-1/2 degree of freedom, for spin-orbit coupling and Zeeman terms.

  • Ribbons (edge states) cut from any periodic model.

  • Broadened density of states.

  • A small library of ready-made lattices.

  • Time propagation.

tbkit is available at cpoli/tbkit and on PyPI at https://pypi.org/project/tbkit/

To use tbkit:

  • Install Python 3.10 or later and three additional packages:

    • numpy

    • scipy

    • matplotlib

  • pip install -e . from a clone of the repository.

Examples are available at cpoli/tbkit, and rendered with their output in the example gallery.