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
See example.ipynb for how to construct arbitatry interpolator bases for GEVP and how to analyze configurations.
- 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
- parameters:
- SchwingerModel class
- 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
- plaqStats