|
| 1 | +# quantumhall_matrixelements |
| 2 | + |
| 3 | +Landau-level plane-wave form factors and exchange kernels for quantum Hall systems. |
| 4 | + |
| 5 | +This library factors out the continuum matrix-element kernels used in Hartree–Fock and |
| 6 | +related calculations into a small, reusable package. It provides: |
| 7 | + |
| 8 | +- Analytic Landau-level plane-wave form factors $F_{n',n}(\mathbf{q})$. |
| 9 | +- Exchange kernels $X_{n_1 m_1 n_2 m_2}(\mathbf{G})$ computed via: |
| 10 | + - Generalized Gauss–Laguerre quadrature (`gausslag` backend). |
| 11 | + - Hankel-transform based integration (`hankel` backend). |
| 12 | +- Symmetry diagnostics for verifying kernel implementations on a given G-grid. |
| 13 | + |
| 14 | +## Mathematical Definitions |
| 15 | + |
| 16 | +### Plane-Wave Form Factors |
| 17 | + |
| 18 | +The form factors are the matrix elements of the plane-wave operator $e^{i \mathbf{q} \cdot \mathbf{R}}$ in the Landau level basis $|n\rangle$: |
| 19 | + |
| 20 | +$$ F_{n',n}(\mathbf{q}) = \langle n' | e^{i \mathbf{q} \cdot \mathbf{R}} | n \rangle $$ |
| 21 | + |
| 22 | +Analytically, these are given by: |
| 23 | + |
| 24 | +$$ 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} $$ |
| 25 | + |
| 26 | +where $n_< = \min(n, n')$, $n_> = \max(n, n')$, and $L_n^\alpha$ are the generalized Laguerre polynomials, and $\ell_B$ is the magnetic length. |
| 27 | + |
| 28 | +### Exchange Kernels |
| 29 | + |
| 30 | +The exchange kernels $X_{n_1 m_1 n_2 m_2}(\mathbf{G})$ are defined as the Fourier transform of the interaction potential weighted by the form factors: |
| 31 | + |
| 32 | +$$ X_{n_1 m_1 n_2 m_2}(\mathbf{G}) = \int \frac{d^2 q}{(2\pi)^2} V(q) F_{n_1, m_1}(\mathbf{q}) F_{m_2, n_2}(-\mathbf{q}) e^{-i \mathbf{q} \cdot \mathbf{G} \ell_B^2} $$ |
| 33 | + |
| 34 | +where $V(q)$ is the interaction potential. For the Coulomb interaction, $V(q) = \frac{2\pi e^2}{\epsilon q}$. |
| 35 | + |
| 36 | +### Units and Interaction Strength |
| 37 | + |
| 38 | +The package performs calculations in dimensionless units where lengths are scaled by $\ell_B$. The interaction strength is parameterized by a dimensionless prefactor $\kappa$. |
| 39 | + |
| 40 | +- **Coulomb Interaction**: The code assumes a potential of the form $V(q) = \kappa \frac{2\pi \ell_B}{q \ell_B}$ (in effective dimensionless form). |
| 41 | + - If you set `kappa = 1.0`, the resulting exchange kernels will be in units of the **Coulomb energy scale** $E_C = e^2 / (\epsilon \ell_B)$. |
| 42 | + - If you want the results in units of the cyclotron energy $\hbar \omega_c$, you should set $\kappa = E_C / (\hbar \omega_c) = (e^2/\epsilon \ell_B) / (\hbar \omega_c)$. |
| 43 | + |
| 44 | +- **General Potential**: For a general $V(q)$, the function `V_of_q` should return 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. |
| 45 | + |
| 46 | +## Installation |
| 47 | + |
| 48 | +From a local checkout: |
| 49 | + |
| 50 | +```bash |
| 51 | +pip install -e .[dev] |
| 52 | +``` |
| 53 | + |
| 54 | +## Basic usage |
| 55 | + |
| 56 | +```python |
| 57 | +import numpy as np |
| 58 | +from quantumhall_matrixelements import ( |
| 59 | + get_form_factors, |
| 60 | + get_exchange_kernels, |
| 61 | +) |
| 62 | + |
| 63 | +# Simple G set: G0=(0,0), G+=(1,0), G-=(-1,0) |
| 64 | +Gs_dimless = np.array([0.0, 1.0, 1.0]) |
| 65 | +thetas = np.array([0.0, 0.0, np.pi]) |
| 66 | +nmax = 2 |
| 67 | + |
| 68 | +F = get_form_factors(Gs_dimless, thetas, nmax) # shape (nG, nmax, nmax) |
| 69 | +X = get_exchange_kernels(Gs_dimless, thetas, nmax) # default 'gausslag' backend |
| 70 | + |
| 71 | +print("F shape:", F.shape) |
| 72 | +print("X shape:", X.shape) |
| 73 | +``` |
| 74 | + |
| 75 | +For more detailed examples, see the tests under `tests/`. |
| 76 | + |
| 77 | +## Development |
| 78 | + |
| 79 | +- Run tests and coverage: |
| 80 | + |
| 81 | + ```bash |
| 82 | + pytest |
| 83 | + ``` |
| 84 | + |
| 85 | +- Lint and type-check: |
| 86 | + |
| 87 | + ```bash |
| 88 | + ruff check . |
| 89 | + mypy . |
| 90 | + ``` |
| 91 | + |
0 commit comments