TBPLaS: A tight-binding package for large-scale simulation
TBPLaS is an open-source software package for the accurate simulation of physical systems with arbitrary geometry and dimensionality utilizing the tight-binding (TB) theory. It has an intuitive object-oriented Python application interface (API) and Cython/Fortran extensions for the performance-critical parts, ensuring both flexibility and efficiency. Under the hood, numerical calculations are mainly performed by both exact diagonalization and the tight-binding propagation method (TBPM) without diagonalization. Especially, the TBPM is based on the numerical solution of the time-dependent Schrödinger equation, achieving linear scaling with system size in both memory and CPU costs. Consequently, TBPLaS provides a numerically cheap approach to calculate the electronic, optical, plasmon and transport properties of large tight-binding models with billions of atomic orbitals. Current capabilities of TBPLaS include the calculations of band structure, density of states, local density of states, quasi-eigenstates, optical conductivity, electrical conductivity, Hall conductivity, polarization function, dielectric function, plasmon dispersion, carrier mobility and velocity, localization length and free path, topological invariant, wave-packet propagation, etc. All the properties can be obtained with only a few lines of code. Other algorithms involving tight-binding Hamiltonians can be implemented easily due to the extensible and modular nature of the code. In this paper, we discuss the theoretical framework, implementation details and common workflow of TBPLaS, and give a few demonstrations of its applications.