Skip to content

v0.2.0: Add Wilson loops + photon dispersion (U(1) deconfinement) #1

Description

@genecat

Goal

Implement basic U(1) diagnostics so we can demonstrate deconfinement (perimeter law) and the 2-polarization photon dispersion. This corresponds to the Stage 1→2 items in ROADMAP.md.


What to build

  • Wilson loops on rectangular loops C in the xy/yz/zx planes.
    • Function (suggested): wilson_loop_expectation(config, rect, plane) -> float
    • Sweep random link phases / ±1 orientations and estimate ⟨W(C)⟩ by sampling.
  • Perimeter vs area test
    • Measure -log ⟨W(C)⟩ vs perimeter and vs area of C; target = perimeter law in the deconfined phase.
  • Photon dispersion
    • Build small transverse gauge-field fluctuations; extract ω(k) for two transverse modes; verify ω≈|k| for small |k|.
  • Script & CLI
    • New script: src/wilson_loops.py
    • CLI ideas:
      • python3 src/wilson_loops.py --L 12 --nsamples 2000 --plot
      • python3 src/wilson_loops.py --scan plane=xy --rects 1x1,1x2,2x2,3x2
    • Save figures under figs/: wilson_perimeter_vs_logW.png, wilson_area_vs_logW.png, photon_dispersion.png.

Acceptance criteria

  • Figure wilson_perimeter_vs_logW.png shows a clear linear relation with perimeter; area scaling is subdominant.
  • Figure photon_dispersion.png shows two transverse branches with ω(k) ≈ |k| at small |k| (slope ~1 in our units).
  • Script runs in < 2 minutes on L≈12 with default --nsamples in the README guidance.
  • CI updated to run the new script headless and save plots (no GUI backend).

Dev notes

  • Keep it Ising/±1-friendly at first; treat exp(iθ_e) with θ_e ∈ {0, π} as the minimal probe.
  • For dispersion: build a small fluctuating transverse field in Fourier space and inverse-FFT; measure ω(k) via time series (like sim_spin2.py).
  • Use matplotlib with Agg backend (CI-friendly). Reuse the style from existing plots.

Docs & CI

  • Update README.md with a “U(1) diagnostics” section and example commands.
  • Add CI step to .github/workflows/ci.yml:
    • python src/wilson_loops.py --L 8 --nsamples 500 --plot (lightweight settings)

Suggested labels: enhancement, research
Milestone: v0.2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions