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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pymablock-1.0.0.post0.tar.gz
Algorithm Hash digest
SHA256 880da5a73b5c7b8e275ac1ace8835a8e632c9632fbcca400b859c6e4ccc11f20
MD5 87312b12f4930bc7e039c09fe7217cac
BLAKE2b-256 007e3dc350f770025ee8436bacc6ab92bc3afae00a758b0f94b20e497c7af271

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymablock-1.0.0.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 86489a51784d4de0da007b992ec2c5e41e6df46398350a81128c5690505cc062
MD5 88b4fd9e51d8c5bc6fd4d9ec6a4bc48d
BLAKE2b-256 ea02338946b3f70a772054199dbe14810736a5e3c4b8efe45cedb255caf2cf18

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