Skip to main content

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

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++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:

  • 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.4.tar.gz (775.4 kB view details)

Uploaded Source

Built Distributions

pybinding_dev-1.0.4-cp312-cp312-win_amd64.whl (882.9 kB view details)

Uploaded CPython 3.12 Windows x86-64

pybinding_dev-1.0.4-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.4-cp312-cp312-macosx_11_0_arm64.whl (923.0 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pybinding_dev-1.0.4-cp312-cp312-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pybinding_dev-1.0.4-cp311-cp311-win_amd64.whl (881.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

pybinding_dev-1.0.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (920.3 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pybinding_dev-1.0.4-cp311-cp311-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pybinding_dev-1.0.4-cp310-cp310-win_amd64.whl (880.3 kB view details)

Uploaded CPython 3.10 Windows x86-64

pybinding_dev-1.0.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (919.1 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pybinding_dev-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pybinding_dev-1.0.4-cp39-cp39-win_amd64.whl (880.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

pybinding_dev-1.0.4-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.4-cp39-cp39-macosx_11_0_arm64.whl (919.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pybinding_dev-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: pybinding_dev-1.0.4.tar.gz
  • Upload date:
  • Size: 775.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for pybinding_dev-1.0.4.tar.gz
Algorithm Hash digest
SHA256 03332fad2f4dd3e3b0701d35479b2e5a6181b900bdda4493619368bb800f5592
MD5 4b9e097380b498a03468e20f8680abdb
BLAKE2b-256 d5887064c3ff04a3d7ef48485d2e51011908cbfdb3897a0dab1c2ee1e194f55c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0328f9a00da6cfe1edd6a766f445b2fbc537bca4f2a9350b250e845e81803b77
MD5 f175eaf562fa68be589b6fd4c22e1f4e
BLAKE2b-256 6921e2fb8910199209aa981fa39b37f9d75291a99d417a310ad8d1ca66bd228d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1005eb42418062cccdba241398ff3a3a2a08e2815e5c14bd2e4ffc41f75b7e74
MD5 dfddeac374c9f5b1090c5df066ddf64d
BLAKE2b-256 519f6e58ca532dcea035f6c2cf64ddb2cb8514fd0270dd73ab743e38cc2765ea

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 43bbc8eccf3dd7f3032c67781853952f238da491cac32c7d4afffd85df787f38
MD5 1a462f2252b7eb7b83a2e4e182a1328d
BLAKE2b-256 51598f8edc2eee96a7125da67cfb79f88fb6c3deec273d12679d07db67a0a478

See more details on using hashes here.

Provenance

File details

Details for the file pybinding_dev-1.0.4-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 508cd8feafdef2f815eb7cd4e53b292ee0ae7d63b4eb02a691a7329b62d48412
MD5 89842807da6be6fc42fa281f223e0276
BLAKE2b-256 0d2420ce3c111552194fc3faf8f005ef0d5d83421a58756a9d8832253ebc5070

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 59b9e4a16d77f485e6365f76993f158e2b0615c8f933a7325ef6d5661a27a92f
MD5 47d3f6d22db40ef259528561d96a8983
BLAKE2b-256 7a5dd9cffb087cc42d8f7a886e6cf76572235dbbbf63f523f3a610558c898702

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8cbc3efb79b972684c8d4e303489e4602bc12a2b71e920e74fb651ffbf72cbb0
MD5 82eb01c6ef12d4bdfd68b31c121de4b0
BLAKE2b-256 47ede56117e0070aca8220b7df25ee9258c7146b9f4f2304aad269a1e972edc2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 969d0e21955723e273726a223d2438e7267c645928963f6bc0b5e872f4091372
MD5 5edc02860e9b266f2115079ce4f1c082
BLAKE2b-256 522b31ad9f6ac4c40a3b18c0b509f3e8a05f2552a1b5fa973b605f1ebf69935c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 eb122f7ea0ee6a4d41e8fc75effce5fd2ec03001e206fb38b565d57cb67b09c9
MD5 652148c2b990aec109150ea95103316a
BLAKE2b-256 70b60a5f7e2423a70ff563d038d03ae40d2ab75a46bdb9316178e5f2e672613d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f022a58e33294e77901aa9a4016dca19b688b7dbe95ee32ae647123a7465e5f9
MD5 74dd63bb1e1c9370fdae3fbc687e521d
BLAKE2b-256 6a755faa56acc1824e5122d7acdaabe85a5855e73202eae9f3c36be5fe74a657

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c967e4bf8867b32a46cc603e329f5849d5d06dc6bd5ff66542584a3f9ee1dfb1
MD5 0f3f8243c2fded83419f6d38f3c8918e
BLAKE2b-256 491d49e9a87f93e3bcf6990e3e69ac8d8aca809d8ead07bfeaf33581ee6b78f2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 875ce2fccac811540485bf7f8f90e4d50f9526682449e96a2b50bb5e508ad955
MD5 3acf98067bef7d2a3c12fdc098e7b2d1
BLAKE2b-256 3ecba866bc8212b35f6304518c210bd3839896096a9d249951a9442831150799

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 077cbffe8fc9c2d23e140bc425f4d0ae106522b33d2153c160765b60b1d09c1d
MD5 73090cadef7903684fd447c25272ce3c
BLAKE2b-256 178aaebf037399f85ac10dbde8f04d8efa9cf9b9e92fd500ede2c8856876bbdd

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 be8642b31fbad1e6ffc28ff39d27dd5f53a4af8d5cfd000367faa6505a378a99
MD5 dca06377391de8593f121a56f57062dd
BLAKE2b-256 6e040233d6f7962ae790e9ba47b2ed64e01ae41c8668d18231501052cbc05f89

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de23b3e704d3e22361037497de451df6890997a8e0048dccd1c7d6a727f6e65d
MD5 008926eac077c97cd53c802792b49d4a
BLAKE2b-256 90d96ac3da7a6a0292ec92c48ab0c5d87b83adb9415f1e4c7981fee58d204dd9

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60c48284d2b9639ccc34aaa6c1405f2de6041abb9e654496034a7e87d3887b39
MD5 d0d9ab2a21e60ceaec3099c1b0f2d372
BLAKE2b-256 4b932baeda845fe337c0c289e437b66662283c789cb7f0dfd30749d9d35cd2b0

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pybinding_dev-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fb2786511e9def3caf2e365ababf4d9bb39cc3af58a7d0c9ef0067a745e3ff8e
MD5 4852018d05308bf574e3f2690dd479ee
BLAKE2b-256 c75d656759a9fefb54967b0775f0fce7332b61546608ec672ff7815e831aef94

See more details on using hashes here.

Provenance

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