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

Uploaded Source

Built Distribution

pymablock-2.0.0-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pymablock-2.0.0.tar.gz
  • Upload date:
  • Size: 201.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for pymablock-2.0.0.tar.gz
Algorithm Hash digest
SHA256 b2145698a2342d344b9172c467efcee49643b6be826baeaf89e305a473b1c8b4
MD5 89ae88db966a8d756533c7df7adfe60d
BLAKE2b-256 457c948463bbbacbd8ef291d76db73d98c3066d701200dbb36901c451e49a0ca

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pymablock-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be6cce64fa4b512508e1f51cf5cc9ecc6aae190a116c2e4ed734bdfa7586dd6a
MD5 a9603f44be426eeb31de434d4bd69b6b
BLAKE2b-256 47cc0ee75981416207daee78f619ec39bd01825ad6856e47470a8fc237f95684

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