Skip to content

SparshMishra97/quantumhall_matrixelements

 
 

Repository files navigation

quantumhall-matrixelements: Quantum Hall Landau-Level Matrix Elements

DOI

Landau-level plane-wave form factors and exchange kernels for quantum Hall systems in a small, reusable package (useful for Hartree-Fock and related calculations). It provides:

  • Analytic Landau-level plane-wave form factors $F_{n',n}(\mathbf{q})$.
  • Exchange kernels $X_{n_1 m_1 n_2 m_2}(\mathbf{G})$.
  • Symmetry diagnostics for verifying kernel implementations.

Plane-Wave Landau-level Form Factors

The plane-wave matrix element $F_{n',n}(\mathbf{q}) = \langle n' | e^{i \mathbf{q} \cdot \mathbf{R}} | n \rangle$ can be written as

$$ F_{n',n}(\mathbf{q}) = i^{|n-n'|} e^{i(n-n')\theta_{\mathbf{q}}} \sqrt{\frac{n_{<}!}{n_{>}!}} \left( \frac{|\mathbf{q}|\ell_{B}}{\sqrt{2}} \right)^{|n-n'|} L_{n_<}^{|n-n'|}\left( \frac{|\mathbf{q}|^2 \ell_{B}^2}{2} \right) e^{-|\mathbf{q}|^2 \ell_{B}^2/4} $$

where $n_&lt; = \min(n, n')$, $n_&gt; = \max(n, n')$, and $L_n^\alpha$ are the generalized Laguerre polynomials, and $\ell_B$ is the magnetic length.

Exchange Kernels

$$ X_{n_1 m_1 n_2 m_2}(\mathbf{G}) = \int \frac{d^2 q}{(2\pi)^2} V(q) F_{m_1, n_1}(\mathbf{q}) F_{n_2, m_2}(-\mathbf{q}) e^{i (\mathbf{q} \times \mathbf{G})_z \ell_B^2} $$

where $V(q)$ is the interaction potential. For the Coulomb interaction, $V(q) = \frac{2\pi e^2}{\epsilon q}$.

Units and Interaction Strength

The package performs calculations in dimensionless units where lengths are scaled by $\ell_B$. The interaction strength is parameterized by a dimensionless prefactor $\kappa$.

  • Coulomb interaction: The code assumes a potential of the form $V(q) = \kappa \frac{2\pi e^2}{q \ell_B}$ (in effective dimensionless form).
    • If you set kappa = 1.0, the resulting exchange kernels are in units of the Coulomb energy scale $E_C = e^2 / (\epsilon \ell_B)$.
    • To express results in units of the cyclotron energy $\hbar \omega_c$, set $\kappa = E_C / (\hbar \omega_c) = (e^2/\epsilon \ell_B) / (\hbar \omega_c)$.
  • Custom potential: Provide a callable potential(q) that returns values in your desired energy units. The integration measure $d^2q/(2\pi)^2$ introduces a factor of $1/\ell_B^2$, so ensure your potential scaling is consistent.

Installation

From PyPI (once published):

pip install quantumhall-matrixelements

From a local checkout (development install):

pip install -e .[dev]

Basic usage

import numpy as np
from quantumhall_matrixelements import (
    get_form_factors,
    get_exchange_kernels,
)

# Simple G set: G0=(0,0), G+=(1,0), G-=(-1,0)
Gs_dimless = np.array([0.0, 1.0, 1.0])
thetas = np.array([0.0, 0.0, np.pi])
nmax = 2

F = get_form_factors(Gs_dimless, thetas, nmax)          # shape (nG, nmax, nmax)
X = get_exchange_kernels(Gs_dimless, thetas, nmax)      # default 'gausslegendre' backend

print("F shape:", F.shape)
print("X shape:", X.shape)

To use a user-provided interaction, pass a callable directly as potential:

def V_coulomb(q, kappa=1.0):
    # q is in 1/ℓ_B units; this returns V(q) in Coulomb units
    return kappa * 2.0 * np.pi / q

X_coulomb = get_exchange_kernels(
    Gs_dimless,
    thetas,
    nmax,
    method="gausslegendre",
    potential=lambda q: V_coulomb(q, kappa=1.0),
)

For more detailed examples, see the example scripts under examples/ and the tests under tests/.

Citation

If you use the package quantumhall-matrixelements in academic work, you must cite:

Tobias Wolf, quantumhall-matrixelements: Quantum Hall Landau-Level Matrix Elements, version 0.1.0, 2025.
DOI: https://doi.org/10.5281/zenodo.17646158

DOI

A machine-readable CITATION.cff file is included in the repository and can be used with tools that support it (for example, GitHub’s “Cite this repository” button).

Backends and Reliability

The package provides three backends for computing exchange kernels, each with different performance and stability characteristics:

  1. gausslegendre (Default):

    • Method: Gauss-Legendre quadrature mapped from $[-1, 1]$ to $[0, \infty)$ via a rational mapping.
    • Pros: Fast and numerically stable for all Landau level indices ($n$).
    • Cons: May require tuning nquad for extremely large momenta or indices ($n &gt; 100$).
    • Recommended for: General usage, especially for large $n$ ($n \ge 10$).
  2. gausslag:

    • Method: Generalized Gauss-Laguerre quadrature.
    • Pros: Very fast for small $n$.
    • Cons: Numerically unstable for large $n$ ($n \ge 12$) due to high-order Laguerre polynomial roots.
    • Recommended for: Small systems ($n &lt; 10$) where speed is critical.
  3. hankel:

    • Method: Discrete Hankel transform.
    • Pros: High precision and stability.
    • Cons: Significantly slower than quadrature methods.
    • Recommended for: Reference calculations and verifying other backends.

Development

  • Run tests and coverage:

    pytest
  • Lint and type-check:

    ruff check .
    mypy .

Authors and license

  • Author: Dr. Tobias Wolf
  • Copyright © 2025 Tobias Wolf
  • License: MIT (see LICENSE).

About

Python library for Landau-level matrix elements in quantum Hall calculations.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jupyter Notebook 90.1%
  • Python 9.9%