Spectrum of the Dirac operator

This is based on the discussions given in arXiv:hep-lat/0511052. Currently, we only have Wilson fermions and Möbius Domain wall fermions. One can also come up with their own fermion discretization scheme and compare the eigenvalues. You can find the code in

latqcdtools.physics.diracFreeSpectra

The purpose of this module is mostly pedagogical. We hope you have fun with it! It consists of a GammaMatrix class, which represents the \(4\times4\) gamma matrices used in Euclidean quantum field theory. You can get, e.g., \(\gamma_1\) using GammaMatrix.g(1). You get \(\gamma_5\) with g5().

The DiracOp class inherits from GammaMatrix, and Represents the Dirac Operator on a spacetime lattice. You instantiate it as

D = DiracOp(Lx=4, Ly=4, Lz=4, Lt=4, fermion="Wilson")

The attributes Lx, Ly, Lz, Lt give the lattice extents in the four spacetime directions. You also provide the type of fermion being used. Right now we just have Wilson and DwMobius. A call to DiracOp.p() Computes and returns the momentum values px, py, pz, pt based on the provided lattice extents. You can also get the Wilson and Domain Wall operators with DiracOp.WilsonOp and DiracOp.DWMobius4D.

For example, say you want to instantiate a \(4^4\) DiracOp object and calculate its eigenvalues for Wilson fermions. You can do this with

D = DiracOp(Lx=4, Ly=4, Lz=4, Lt=4, fermion="Wilson")
eigenvalues = D.eigvalues(mass=0.1)