Skip to content

Repository files navigation

Schwinger Model Simulation

This repo simulates U(1) gauge theory on a 1+1 D lattice with 2 mass degenerate fermions.

The analysis code includes:

  • Automatic wick contractions
  • Distillation
  • GEVP
  • Theta term reweighting

Quick Start

See example.ipynb for how to construct arbitatry interpolator bases for GEVP and how to analyze configurations.

Map of the repo (in progress):

  • SchwingerModel.py: contains the gauge generation code
    • SchwingerModel class
      • parameters:
        • dimx, dimt: spacial and temporal extent of the lattice
        • metroSteps: the number of metropolis-hastings steps
        • beta: coupling constant, proportional to $e^{-2}$
        • fMass: mass of the fermion
        • aSpacing: relates to the spacing between the grid points
        • cgRtol: relative tolerance for the cg solves
        • numSubSteps: number of molecular dynamics steps for each HMC iteration
        • randSeed: random seed for numpy rng
        • tunneling: whether to propose changing the topological charge after each HMC iteration
  • analysis.py: contains some simple analysis functions, often superseeded elsewhere
    • plaqStats
      • returns the average and std. err. of the plaquette
    • correlStats
      • returns the correlator between two fermion bilinears of Gamma
      • can include the disconnected part
      • jacobi smearing can be added using the smearing argument along with kappa and smearingSteps
      • projection to definite momentum $k \in \mathbb{Z}$
    • effectiveMassStats
      • does the same thing as correlStats, but returns the effective mass instead
      • if data is noisy, then this works poorly because effective mass can become NaN in boostrap draws
    • effectiveMassProp
      • takes the output of correlStats and returns the effective mass, with errors propagated
      • used because of effectiveMassStats problems, but error bars are larger than they should be
    • numDensityStats
      • finds the expected value of the number density with errors given an chemical potential
      • numberDensity is found by reweighting the configutions that we generated with zero chemical potential
      • may not be correct for the theory we are trying to analyze (i.e. reweighting here might be wrong)
    • getCorrelation
      • used by correlStats to find the correlation function for one gauge configuration
    • get_integrated_autocorr_time_statistical
      • given a rho_bar and number of configurations find the corresponding integrated autocorrelation time
      • rho_bar can be generated by funcitons like getNumDensityRhoBar and getEffMassRhoBar

About

This repo simulates the N_f=2 Schwinger Model using pseudofermions. Distillation, GEVP, and algorithmic wick contractions are also included.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages