alejandrojuria / tightbinder

General purpose Slater-Koster tight-binding library for electronic structure calculations
https://tightbinder.readthedocs.io
GNU General Public License v3.0
13 stars 6 forks source link
alloys band-structure condensed-matter-physics dft-fit disorder electronic-structure physics python simulation slater-koster solid-state-physics tight-binding topology
![logo](images/logo.png) [![Documentation Status](https://readthedocs.org/projects/tightbinder/badge/?version=latest)](https://tightbinder.readthedocs.io/en/latest/?badge=latest) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/alejandrojuria/tightbinder/issues) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) ![PyPI - Downloads](https://img.shields.io/pypi/dm/tightbinder) [![DOI](https://joss.theoj.org/papers/10.21105/joss.05810/status.svg)](https://doi.org/10.21105/joss.05810)

tightbinder is a Python library for electronic structure calculations based on the Slater-Koster approximation for tight-binding models. It provides all the necessary tools to build, modify and characterize any crystalline or disordered material.

The construction of a Slater-Koster model relies on the definition of a configuration file, which contains all the information needed to build the model. Namely, one has to specify completely the crystalline structure, i.e. the Bravais vectors and motif, and the electronic structure which amounts to the orbitals, onsite energies and hoppings between orbitals. The configuration file then fully characterizes the Slater-Koster models and constitutes the starting point for the majority of the calculations done with the library. Alternatively, it is also possible to define custom models that can still leverage the capabilities of the package.

The features of the library are:

Features

For a complete description of the capabilities of the package, we refer to the documentation where several usage examples can be found together with the full API reference.

Installation

Usage of a virtual environment is recommended in general to avoid conflicts between packages.

To install the latest version of the package, simply run:

pip install tightbinder

Alternatively, you can clone the repository to get the most up-to-date version of the package.

git clone https://github.com/alejandrojuria/tightbinder.git

From the root folder of the repository, install the library (which will automatically install the required dependencies):

cd {path}/tightbinder
pip install .

Documentation

The documentation can be accessed online. To build it, you must have installed GNU Make and the library itself. Additional requirements to build documentation can be installed by specifying docs qualifier when installing tightbinder

cd {path}/tightbinder
pip install ".[docs]"

Then, cd docs/ and then, run make html to build the documentation. It will be created in docs/build/html, and can be accessed through index.html.

Contributing

The library is still under development as new features and optimizations are added. Therefore, any kind of contribution is welcome, from completing the documentation, bug fixing, adding new features or reporting bugs of the library. In general, any contribution should stick to the PEP style guidelines. If in doubt, do not hesitate to contact!