dean0x7d / pybinding

Scientific Python package for tight-binding calculations in solid state physics
https://pybinding.site
BSD 2-Clause "Simplified" License
187 stars 68 forks source link
band-structure condensed-matter quantum-mechanics scientific-computing solid-state-physics tight-binding
pybinding

DOI License Gitter Documentation Status Travis Build Status AppVeyor Build status

Pybinding is a Python package for numerical tight-binding calculations in solid state physics. The main features include:

The code interface is written in Python with the aim to be as user-friendly and flexible as possible. Under the hood, C++11 is used to accelerate demanding tasks to deliver high performance with low memory usage.

See the documentation for more details.

Install

Pybinding can be installed on Windows, Linux or Mac, with the following prerequisites:

Detailed install instructions are part of the documentation, but if you already have all the prerequisites, it's just a simple case of using pip, Python's usual package manager:

pip install pybinding

Features

The goal of the project is to develop a tight-binding code framework which is fast, flexible and easy to use. This is just a quick overview of some of the features. See the documentation for more details and a guide to get started.

Benchmarks

One of the main features of pybinding is an easy-to-use and fast model builder. This can be a demanding task for large or complicated systems. Great care was taken to make this process fast.

The following figures compare the performance of pybinding with the Kwant package. They present the time and memory required to build a Hamiltonian matrix which describes a tight-binding system. Pybinding features good performance and a low memory footprint by using contiguous data structures and vectorized operations.

Tight-binding model build benchmark

See the benchmarks section of the documentation for details on the testbed hardware and software, as well as the source code which can be used to reproduce the results.

Citing

Pybinding is free to use under the simple conditions of the BSD open source license. If you wish to use results produced with this package in a scientific publication, please just mention the package name in the text and cite the Zenodo DOI of this project:

DOI

You'll find a "Cite as" section in the bottom right of the Zenodo page. You can select a citation style from the dropdown menu or export the data in BibTeX and similar formats.

Questions?

If you have any questions, feel free to join the chat room on Gitter. You can also open an issue at the tracker.