Gauge Measurements - lattice/quda GitHub Wiki

Wilson (plaquette) Action

The Wilson plaquette action is defined as the averaged sum of the real part of the trace of all 1x1 plaquettes, and a plaquette U_{mu,nu}(x) is an ordered and oriented product of gauge links U_{mu}(x) defined at a lattice point x.

          x+nu--<--x+mu+nu
            |        |
            v        ^
            |        |
C_{mu}(x) = x--->---x+mu

Computing this number using QUDA is trivial. After properly initialising and configuring QUDA to your specifications, pass a 3 dimensional double to the interface function:

void plaqQuda(double plaq[3]);

and QUDA will populate the array with the following:

plaq[0] = plaq3.x; //Plaquette average
plaq[1] = plaq3.y; //Purely spatial plaquette average
plaq[2] = plaq3.z; //Purely temporal plaquette average

Clover Action

Another action definition is the clover action. This is similar to the Wilson action in that it is made up of plaquettes, but now there are 4:

F_{mu,nu}(x) = 1/8[U_{mu,nu}(x)+U_{mu,nu}(x-mu)+U_{mu,nu}(x-nu)+U_{mu,nu}(x-mu-nu) -
                   (U_{mu,nu}^dag(x)+U_{mu,nu}^dag(x-mu)+U_{mu,nu}^dag(x-nu)+U_{mu,nu}^dag(x-mu-nu))]

To compute a lattice observable such as the energy from the clover action, simply call the QUDA interface function

double energyQuda();

Topological Charge and Density

One can define a topological charge for the lattice as:

Q(x) = 1/(32*pi*pi) * (Re Tr[F_{1,0}(x) - F_{3,2}(x)] + Re Tr[F_{3,0}(x) - F_{2,1}(x)] - Re Tr[F_{2,0}(x) - F_{3,1}(x)])

Which is computed via either of the QUDA interface functions

double qChargeQuda();
double qChargeDensityQuda(void *h_qDensity);

Each will return the topological charge value, and the second will allocate memory for an array of Q(x), the topological charge at each lattice site. This can be useful for eta prime computations.