Skip to main content

Numerical and symbolic implementation of quasi-degenerate perturbation theory

Project description

Pymablock: quasi-degenerate perturbation theory in Python

Pymablock (Python matrix block-diagonalization) is a Python package that constructs effective models using quasi-degenerate perturbation theory. It handles both numerical and symbolic inputs, and it efficiently block-diagonalizes Hamiltonians with multivariate perturbations to arbitrary order.

Building an effective model using Pymablock is a three step process:

  • Define a Hamiltonian
  • Call pymablock.block_diagonalize
  • Request the desired order of the effective Hamiltonian
from pymablock import block_diagonalize

# Define perturbation theory
H_tilde, *_ = block_diagonalize([h_0, h_p], subspace_eigenvectors=[vecs_A, vecs_B])

# Request correction to the effective Hamiltonian
H_AA_4 = H_tilde[0, 0, 4]

Here is why you should use Pymablock:

  • Do not reinvent the wheel

    Pymablock provides a tested reference implementation

  • Apply to any problem

    Pymablock supports numpy arrays, scipy sparse arrays, sympy matrices and quantum operators

  • Speed up your code

    Due to several optimizations, Pymablock can reliably handle both higher orders and large Hamiltonians

For more details see the Pymablock documentation.

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

pymablock-1.0.0.tar.gz (6.7 MB view details)

Uploaded Source

Built Distribution

pymablock-1.0.0-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file pymablock-1.0.0.tar.gz.

File metadata

  • Download URL: pymablock-1.0.0.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for pymablock-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3275acc25bbd899151064eb480233bb8ae81dd575c20d1c96981f64b9ce03dc1
MD5 e0f1a7a493c6bb6127cceec31f3c7220
BLAKE2b-256 177ab97b8b98de5ac8e52aad885e7917ff13038533695d70b5c6541736bd04fc

See more details on using hashes here.

File details

Details for the file pymablock-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pymablock-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 34.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for pymablock-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ddb68b0b48203724ce4238a5c38716a70d699fc41298f171b2fe397f05403500
MD5 a472f97bfd6e6c4fe972d2b3b3f128f0
BLAKE2b-256 f84e4cebf8cb507ed61653bf6b216fb423f2d98c33c4a1545c3cfd619be0bbd5

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