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, Z2 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. Program summaryProgram Title:TBPLaSCPC Library link to program files:https://doi.org/10.17632/5cjmzj9jwm.1Code Ocean capsule:https://codeocean.com/capsule/8296734Licensing provisions: BSD 3-clauseProgramming language: Python, Cython, FortranNature of problem: The TB method is a powerful tool for investigating the electronic structures and many other properties in condensed matter physics. However, the costs of memory and CPU time using standard diagonalization-based TB techniques scale as O(N2) and O(N3) with the model size N, severely limiting their applications in large complex systems. The development of numerical methods to solve TB problems without any diagonalization, as well as the implementation of these techniques in software packages, are urgently needed to promote the capability of TB methods to large systems with billions of atoms.Solution method: We proposed the TBPM and implemented it in the TBPLaS package. In TBPM, the electronic properties of a TB model are calculated numerically by solving the time-dependent Schrödinger equation without any diagonalization, which ensures a linear scaling of both memory and CPU costs with the system size. Models with billions of atoms (orbitals) can be easily handled, with many properties available from the evolution of time-dependent correlation functions. The TBPLaS package features an intuitive object-oriented Python API and Cython/Fortran extensions for performance-critical parts, ensuring both flexibility and efficiency. Moreover, TBPLaS implements hybrid MPI+OpenMP parallelism, which can exploit the modern hardware of high-performance computers.
Read full abstract