Symmetric-gauge workflows¶
The symmetric-gauge helpers are designed for calculations in the single-particle basis |n, m> without forcing large tensors unless they are actually needed.
Factorized density form factors¶
The density matrix element factorizes into cyclotron and guiding-center pieces:
import numpy as np
from quantumhall_matrixelements import get_factorized_density_form_factors
q = np.array([0.5, 1.0, 1.5])
theta = np.zeros_like(q)
F_cyc, G_gc = get_factorized_density_form_factors(
q,
theta,
nmax=3,
mmax=5,
)
This is usually the right object to keep around in code. The helper already handles the opposite-chirality guiding-center convention internally.
Haldane pseudopotentials¶
Use get_haldane_pseudopotentials(...) for plane pseudopotentials V_m^{(n_\mathrm{LL})}:
from quantumhall_matrixelements import get_haldane_pseudopotentials
V_m = get_haldane_pseudopotentials(10, n_ll=0)
See the worked example Lowest-Landau-level Coulomb pseudopotentials.
Reconstruct disk two-body matrix elements¶
If your workflow starts from pseudopotentials but needs explicit LLL disk matrix elements:
from quantumhall_matrixelements import (
get_haldane_pseudopotentials,
get_twobody_disk_from_pseudopotentials_compressed,
)
V_m = get_haldane_pseudopotentials(12, n_ll=0)
values, select = get_twobody_disk_from_pseudopotentials_compressed(V_m, mmax=6)
The returned select entries are orbital quadruples (m1, m2, m3, m4).
Central one-body matrix elements¶
For origin-centered radial potentials in the symmetric-gauge basis:
from quantumhall_matrixelements import (
get_central_onebody_matrix_elements_compressed,
materialize_central_onebody_matrix,
)
values, select = get_central_onebody_matrix_elements_compressed(
nmax=3,
mmax=5,
potential="coulomb",
)
V_dense = materialize_central_onebody_matrix(values, select, nmax=3, mmax=5)
The compressed representation is usually the better storage format unless downstream code explicitly requires a dense tensor.