TightBinding++

A free and open source simulator for tight-binding systems


  Download TightBinding++

About

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

Features

Automated Generation of Hamiltonian Matrix

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.

Random On-Site Disorder

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.

Linear Response Electrical Conductivity

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.

Free and Open Source

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.

HDF5 File Format

TightBinding++ parameters and results are stored in *.tbpp files using the HDF5 file format.

  • The entire simulation pipeline is saved insuring reproducible results.
  • Directly import data and parameters into most modern data analysis environments for further post-processing (Python, R, Octave/SciLab/MATLAB, Mathematica, etc...).
  • Binary format allows for compact storage of large data files.
  • Easily share results and simulation setup among users.

Python 3 Integration

All TightBinding++ algorithms can seamlessly be used from Python 3.

  • Create, edit and manage *.tbpp files entirely using python.
  • Run and analyze simulations from python.
  • Combine TightBinding++ algorithms with python code to generate custom simulation routines.

C++ API for Advanced Users

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.

Multi-Threaded Stand-Alone Solver

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.


         

Cross Platform

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.

Download

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.


Documentation



Getting Started/Tutorials


C++ API Documentation

Acknowledgment of Support and Disclaimer

This material is based upon work supported by the National Science Foundation under Grant No. DMR-14-11336. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.