TightBinding++ is a framework for simulating quantum
tight-binding models. It enables users to simulate large
tight-binding systems starting from a list of the
positions and types of each site along with a real space
description of the hopping parameters.
The framework aims to provide a comprehensive collection
of user-friendly, multi-threaded tight-binding algorithms
written entirely in C++11 to facilitate the study of
models including those describing Topological systems such
as Topological insulator and semi-metals as well as models
derived using ab-initio techniques such as combining
Density Functional Theory (DFT) with the Wannier
projection method.
In addition to serving as a research tool, TightBinding++
aims to be user-friendly and an educational resource for
students at the graduate and advanced undergraduate
level.
There are various ways of using the framework including a
Python 3 wrapper which enables defining and running
simulations entirely using Python.
Likewise, a graphical interface is currently under
development which enables users to define and inspect
TightBinding++ simulation pipelines with minimal
programming knowledge.
Finally, advanced users can easily incorporate modules
into new C++ code by linking against the TBPP
library.
Currently TightBinding++ provides various modules
including algorithms for computing the density of states
and band structure of a system, analyzing the effects of
random impurities using the Coherent Potential
Approximation and computing the electrical conductivity
using the Kubo-Greenwood formalism.
Development of TightBinding++ began in mid 2016 in the
Savrasov group at the
Department of Physics of the University of California, Davis.
The software is currently under heavy development.
— TightBinding++ Development Team
TightBinding++ automatically generates the Hamiltonian matrix from a list of the positions and types of each site along with the real space hopping parameters. For finite size lattices or periodic conditions, TightBinding++ is likewise able to incorporate effects due to external magnetic fields using the Peierls substitution method. This allows for one to consider different simulation parameters or lattice sizes without manually needing to determine the Hamiltonian matrix.
Simulate the effects of random on-site substitutions using the Coherent Potential Approximation (CPA). CPA is a method for simulating random on-site substitutions self-consistently without resorting to computationally intensive super-cell methods by solving for an effective self-energy of the medium. The method enables for the consideration of vacancies and impurities in large systems.
Compute the linear response electrical conductivity using the Kubo-Greenwood formalism. The framework provides both an approximate conductivity solver, which uses a constant artificial broadening parameter, as well as a solver using the self-energy matrix of the system. Together with the CPA module, this allows for computing the effects of disorder on the electrical conductivity.
TightBinding++ is licensed under the GNU General Public License version 3. Releases of the software are made freely available on GitHub. This makes the software accessible to foster development, research and as an educational tool for students. Contributions to the development of the project are welcomed.
TightBinding++ parameters and results are stored in *.tbpp
files using the HDF5 file format.
All TightBinding++ algorithms can seamlessly be used from Python 3.
*.tbpp
files
entirely using python.TightBinding++ algorithms are entirely written in C++11 in a reusable and modular fashion. They can easily be incorporated into new C++ code by linking against the TBPP library. Likewise, a modular design allows for functionality to be extended by adding new self-contained modules.
With tbrun
one can solve
*.tbpp
files on any system with a modern
C++11 compiler. This allows for time-intensive jobs to be
submitted to clusters for processing regardless of whether
Python 3 or a graphical interface is available on the
target system.
TightBinding++ aims to be easy to install and targets GNU/Linux, macOS and Windows platforms. Insuring that regardless of computing environment, students and collaborators will be able to quickly begin using the framework.
TightBinding++ is currently under heavy development and we are still working towards a stable release. The latest development version of the source code can be downloaded from the GitHub project page.