Skip to main content

Package for tight-binding calculations, Documentation: http://pybinding.site/ (c) 2015-2024

Project description

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:

  • Declarative model construction - The user just needs to describe what the model should be, but not how to build it. Pybinding will take care of the numerical details of building the Hamiltonian matrix so users can concentrate on the physics, i.e. the quantum properties of the model.

  • Fast compute - Pybinding's implementation of the kernel polynomial method allows for very fast calculation of various physical properties of tight-binding systems. Exact diagonalization is also available through the use of scipy's eigenvalue solvers. The framework is very flexible and allows the addition of user-defined computation routines.

  • Result analysis and visualization - The package contains utility functions for post-processing the raw result data. The included plotting functions are tailored for tight-binding problems to help visualize the model structure and to make sense of the results.

The code interface is written in Python with the aim to be as user-friendly and flexible as possible. Under the hood, C++17 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:

  • Python 3.9 or newer (Python 2.x is not supported)
  • The SciPy stack of scientific packages, with required versions:
    • numpy >= v1.12
    • scipy >= v0.19
    • matplotlib >= v2.0
  • If you're using Linux, you'll also need GCC >= v5.0 (or clang >= v3.5) and CMake >= v3.5.

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.

  • Construction of arbitrary tight-binding lattices and geometries: 1 to 3 dimensions (including multilayer 2D systems), periodic or finite size (with fine control of edges)
  • Easy polygon shape definition for 2D systems and freeform shapes for n-dimensional systems
  • Geometric deformations and defects: defined via displacement and state functions
  • Fields and arbitrary effects: defined via hopping and onsite energy functions
  • Kernel polynomial method: a fast way to compute Green's function, spectral densities of arbitrary operators, electrical conductivity, or various other user-defined KPM methods
  • Exact diagonalization: standard dense and sparse eigenvalues solvers (always available) and the FEAST solver (only available when compiled with Intel's MKL)
  • Transport: scattering systems with semi-infinite leads can be constructed in pybinding and then solved using the Kwant compatibility layer
  • Model and result objects have builtin plotting functions for easy visualization

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybinding_dev-1.0.5.tar.gz (783.1 kB view details)

Uploaded Source

Built Distributions

pybinding_dev-1.0.5-cp312-cp312-win_amd64.whl (938.0 kB view details)

Uploaded CPython 3.12 Windows x86-64

pybinding_dev-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.5-cp312-cp312-macosx_11_0_arm64.whl (959.8 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pybinding_dev-1.0.5-cp312-cp312-macosx_10_13_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

pybinding_dev-1.0.5-cp311-cp311-win_amd64.whl (934.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

pybinding_dev-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.5-cp311-cp311-macosx_11_0_arm64.whl (957.2 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pybinding_dev-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pybinding_dev-1.0.5-cp310-cp310-win_amd64.whl (933.4 kB view details)

Uploaded CPython 3.10 Windows x86-64

pybinding_dev-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.5-cp310-cp310-macosx_11_0_arm64.whl (955.8 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pybinding_dev-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pybinding_dev-1.0.5-cp39-cp39-win_amd64.whl (923.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

pybinding_dev-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.5-cp39-cp39-macosx_11_0_arm64.whl (955.9 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pybinding_dev-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

Details for the file pybinding_dev-1.0.5.tar.gz.

File metadata

  • Download URL: pybinding_dev-1.0.5.tar.gz
  • Upload date:
  • Size: 783.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pybinding_dev-1.0.5.tar.gz
Algorithm Hash digest
SHA256 ae19f575806783fa133adb2bbce75fd52d0d3f434eb7dbf01c26dbc6a885238c
MD5 fe318011b4a5b9cd5d1b4851ea455a0f
BLAKE2b-256 ec1c938e937657f47d3aa25d1f9b60fb869f465fa8a4649c82cbe0c582723c5e

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a33bda075bc4d53106dda5a0bd91d18c30282bef98455f7c955ce35a5f3631ab
MD5 e9c78e06e34ced223c09e0a17ed317f2
BLAKE2b-256 e156cfbccd0c9f73b617820ac085aae17ce98d8426ad11747a8a3d9c8c45ed82

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7208e0c268d16de4485b9d5cc6c202a7ec9180459b3abdc4501094241351d32c
MD5 f8fee97ddfa352e0d65dd09ccc0fac9f
BLAKE2b-256 a67f54ec9e36826ea569d2f85b62007aa2f5a34b0b03760fbba53c71d0f7be4c

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd27162a29c96ee72eda8a220481a747682040c509b250c92e728c48b11ecf4c
MD5 e7de220e80ebf0e5604ce9ab81047402
BLAKE2b-256 20af5f28b4d3b3dd96dd91e8e1c12af14203d363b56479633b1cd890409bed5a

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 994cdd6057d033321eb1c15be07ae47e1360a985f2632bbb614199bb525e4d1c
MD5 71c24961662dae85635458adaeaf0bf8
BLAKE2b-256 6627ae449c32a2cd6997891fbfb0f930c8e6b0dd3d7b2110e5d6263ffb530d98

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 925004f1221ca5ca1d7b3e394318735230bc10e1ad77468dcec5cf1a864ae60f
MD5 3dcc3a00da575e6fb0e51d428ba26fd7
BLAKE2b-256 ca1afc5d085be555cd6302b52a33140ee07fcc0296cf7f7fb0c621cf81a5bc7e

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7002d51856da4f5f7500323a886d7ba61328bf152770b24c9e31a34077f18de
MD5 c2908b0a0058729226ba8ec3b9136365
BLAKE2b-256 39a8c975bdc3ce4288783674b0767621735b6f023b94e237c786c685d02491fd

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0facf9c683fdefce671687ab4b7733fc6756f17e8fda45a04dc4af8933c5cb9
MD5 563d6aecffdb11b7f5670468b3cd77e7
BLAKE2b-256 16fbbc0b2f5f90d6727e28ac109ce7388832b1e2d8f0f1c7f35132cd24fc314d

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 31815ea54b1c046c94fa4c547a2a2e4ad9b32938724108b9061b76e515030d07
MD5 542d6f687e258bc03a1b5664ce8d8ec1
BLAKE2b-256 66cc785aa18086d6080539573d1e2b97e28ab5cc8c83443d0afbf5677f2f60b8

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2e97033194201e29b33e2490014040c97a247e8855385482bdd8097d86cb07ae
MD5 76e58dce87d9d53980bd70b013920cf0
BLAKE2b-256 b6b4022aef8ab337079e9e43c78ab5121527367b5917c6bea52f371f6e710537

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5658bf39fe34cf4ef7e4f737f7b8b9af8e3b07a07e0819156525e989a5044d49
MD5 45090bbedc73529a77188c67a10a5717
BLAKE2b-256 b9d2afde0b70d19544e01e1a0085d6792c31ae86fb8a51d3d370ee315b480cf8

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4016f4625736b05f4db212053c7445ee412f3a171c979321bea8d8d5c1229f23
MD5 87194eac8df4c07158676e1e8f2f553b
BLAKE2b-256 a03dd68e37fa7b4afdfbc6d96545038b7655ce2541080454895ba687fd9bfed5

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 380ec9111e2e56c5ecdc3c15fb5a233faefff7d90c77f57d8d2cc8728b1d7d59
MD5 8ccc7f9c90f6810cf681773141025f4b
BLAKE2b-256 b21fd3a858022a3ac2fe0c7ad04a06a17d4fefe30a7b235e55f1d28c0f632d0b

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b99da657bee8dc420af1643123baf40beaf28725fe1a0c6dcea9288e59e71f6b
MD5 c174d188b5979891e6f8c09d63271b85
BLAKE2b-256 1656fd93232ee110c35e8e52e6d16b603b04e32abf4495ef75013f5c6da45ac2

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1356ff732ab8f5134f842fc45a30b3fe9fe3d26eb74d504962cdb3e7e205c6d8
MD5 927fc972054055ceb1d55df9756402c8
BLAKE2b-256 672a9dc9efea51421b7835fdcc58262d0d6bde936bb156b49895ab1289b015a9

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6ae27d05e6ebe6d7651117048bb40cc12e47d2e19ea4d392eee9a131adef34d
MD5 9a529f566368e71a236bd6b741ca5ba5
BLAKE2b-256 2613fc2af09c3115aaf6b99bd44514f9716d6f002be012110ed8fc2dd36846cd

See more details on using hashes here.

File details

Details for the file pybinding_dev-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 14d09e1a670b6ca0d3f73e0793d82c08f951bd1b5ff07eb531536a681531b040
MD5 047f3dec0556f8f2dacbb3714feb6edd
BLAKE2b-256 5b7acfbd817b7fd819684cf9321490035587b22c636f07c947df847b21ade82d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page