Skip to main content

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

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.6.tar.gz (802.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pybinding_dev-1.0.6-cp313-cp313-win_amd64.whl (940.6 kB view details)

Uploaded CPython 3.13Windows x86-64

pybinding_dev-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_arm64.whl (978.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pybinding_dev-1.0.6-cp312-cp312-win_amd64.whl (940.5 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.6-cp312-cp312-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

pybinding_dev-1.0.6-cp312-cp312-macosx_11_0_arm64.whl (978.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pybinding_dev-1.0.6-cp311-cp311-win_amd64.whl (938.0 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.6-cp311-cp311-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

pybinding_dev-1.0.6-cp311-cp311-macosx_11_0_arm64.whl (974.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pybinding_dev-1.0.6-cp310-cp310-win_amd64.whl (937.9 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pybinding_dev-1.0.6-cp310-cp310-macosx_11_0_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

pybinding_dev-1.0.6-cp310-cp310-macosx_11_0_arm64.whl (972.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pybinding_dev-1.0.6.tar.gz
  • Upload date:
  • Size: 802.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pybinding_dev-1.0.6.tar.gz
Algorithm Hash digest
SHA256 c49b8976a6bb893e8c98f2dd47e3e922da10f03ce1a42965288d95863f519048
MD5 bcac4a2e712a0aaaed153c947cf94937
BLAKE2b-256 2902ed58b74a1efc4fa01b51801f3a1343582971bd1599264459c1fd99e6ac40

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6.tar.gz:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybinding_dev-1.0.6-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 92f3dc98a36c2771bda7118832fdb16cd35c135d2465c1801667a826aeb6ae14
MD5 aa17fcc8bb4fcae6dac802dda4c330d0
BLAKE2b-256 0de41914dc829f1125048b1883ca8cee03fbd86c6205fb663aed31d70290d382

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp313-cp313-win_amd64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybinding_dev-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a033754b1f12c5f89e71133edf3e8057e79e9d1e0f131b5ff77da8a88e1092bb
MD5 fba3bb2ce0cc6afce9ba59b82912d4ee
BLAKE2b-256 25054f37432222b9b65d34575f9b68f82f46bbfb986643af4cae4246632f2e51

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 74cb4bcea7aa60b551d43c82c487d589a23e7ed9d400368b5cc34245b2097622
MD5 01fdfed9168c12f9e319eb697468a0b0
BLAKE2b-256 2c662fe12fe436f87f6eb69fb9400da0e05980fb1729e33a3e39a60f5a062b83

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46b25c7b4af73a3bb34eafef8482b6622f7eccb704415a3eec60b215e12b996c
MD5 11e09dc59cd85da6cb44adfd495b8533
BLAKE2b-256 d78bc30554205689e848cd69c7c72119885b82fd740c292b8bf2a335bb186453

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4da010a0bbb9c6f208bc0506c67bb220a9db6b9e9083077e4c5c3407b1e95f9d
MD5 c8bdafeabd84cfc9f84930c53ff1016b
BLAKE2b-256 b517fbd0fbf9fe7e6a8dbecbbfcf480cba57cbe9d6da63cfbda4ddf76b6df89f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp312-cp312-win_amd64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f84669c2910c3b55f2bb0a82782f2f79297b683cd08f7904a1d1c1bb45db98da
MD5 a937895ee4a1f49241c0db193ba09b3e
BLAKE2b-256 c5388b8edbb451a3aea7a5c2488a057f39256df23fbfc8c82c1ca3296061a9f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybinding_dev-1.0.6-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 bea25216c07ca52ba450c4c0afefaae4c1d5da31b86e4599727e55e39e1c92f0
MD5 9d1442382d3c2d28a8054986dd31c8ab
BLAKE2b-256 055df26f1a605e2ef288192b85edc126cbcb415e7a8cb138d9cf83e62441ea26

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp312-cp312-macosx_11_0_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4e41337cee2285bb394395e95809c1353e6df405a2de95ce91ce2274ab93d7d
MD5 c32723553f7e89311757eaf6c076b82c
BLAKE2b-256 7f5701af3b88c5ae0ca2f7499c55d27535b7ca4a54c0cd17a3b0e9bffb750871

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f9cea6b0f5c0d3cf89191a54a82220650f0ef7a0bb83e20de7ceaf6715ab7286
MD5 c1bcd48872496b1527a84d98d656f22a
BLAKE2b-256 ee6a0b5d0d99e1c20c1199c3e653ecb1fbba26c48d0edae44d9ebb528b81c790

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp311-cp311-win_amd64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b66dc22ab7a92edc27e5892b7e8041026ebfd2a6b54cb15cd7256b3644a8fb0
MD5 e2a2ccb64c60626f83cfea0b439bf355
BLAKE2b-256 6d0a54e093295633b908aebc90666d57601f4eed1bc3d92953b4a334542aa22c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybinding_dev-1.0.6-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 88df12861dfffdd3d142e8eb27e04cd6540eb31442a88c303241aed89f57d166
MD5 d8a8ca08c9010bed0a33da0ff3ecb0cb
BLAKE2b-256 1f3961bdb661ac093e45e6d5e4ec5a92b4a2ff4108144dd35adef0c4be6275ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp311-cp311-macosx_11_0_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 667a6c885337277beb5b2742cd38cb4464aadb3fd627525664c12a9f6b0935b2
MD5 623554445be8ee6bad7fbbaa6d6eaab3
BLAKE2b-256 3c7c0db9f5bb82d71201a02488cb7bfc0eb637a7486621b7fdba895fb124582d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0d13120af3e39c5ba27fcb5b84264ea61d739b47927c671a8c643dd04f9a4bcb
MD5 c7e46f9e79c42dfd9e24d3d42ea992fc
BLAKE2b-256 20232a96ec67a04b7ed5be7b6ebbc01e384b766595d42c1eb70fa70c17732a0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp310-cp310-win_amd64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d2ee3942b7c8b839f166e90d6c34fd4b92495cdc3e82cff2592501e753422c78
MD5 72c02c3c22ca9bf95e21d7d99958f620
BLAKE2b-256 1538522a588f7ed933d69c4b0b537943b84d551fdc0a7748adaf25741a88227a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybinding_dev-1.0.6-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 dc6956ee68de25e081646851c42b7fff01aa8a9bfc63b847ebeecc596b7f87ed
MD5 ecec77480913e625fe959b11f92375d9
BLAKE2b-256 f1ed8bf1035ce7a4983239aa9583699b4a5128b8251510aa4ff3337fd354564a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp310-cp310-macosx_11_0_x86_64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c4770e8d008a8de9754044dfa0033101c71ce3db6878f02ab2089c18d5106c9
MD5 0d099a6f396c8f1d422e29ea10963b2b
BLAKE2b-256 abc99dddd178e0df51e506e80073c3566b33ee8dfd67fb92d5ba4056bd8714f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybinding_dev-1.0.6-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: actions.yml on BertJorissen/pybinding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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