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.