Você está na página 1de 55

Introduction to Quantum Gauge Theories on Supercomputers

Department of Mathematics and Computer Science University of Southern Denmark

Martin Rasmus Lundquist Hansen August 1, 2012

Supervisor Claudio Pica

Contents
Abstract 1 Classical Electrodynamics 1.1 Potentials and Gauge Invariance 1.2 Lorentz Transformation . . . . . . 1.3 Four-vector Notation . . . . . . . 1.4 The Electromagnetic Lagrangian 1.5 Noethers Theorem . . . . . . . . 1.6 Conservation Laws . . . . . . . . ii 1 1 3 5 7 9 10

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

2 Introduction to Gauge Theory 13 2.1 The Klein-Gordon Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Quantum Electrodynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Yang-Mills Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3 Feynman Path Integrals 18 3.1 Transition Amplitude in One Dimension . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Generalisation of the Path Integral . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 The Path Integral for Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 Lattice Gauge Theory 4.1 Discretisation and the Continuum Limit 4.2 The Heat-bath Algorithm . . . . . . . . 4.3 Properties of an SU(2) theory . . . . . 4.4 Numerical Results . . . . . . . . . . . . Conclusion Bibliography 24 24 27 30 32 38 39

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Appendix 40 A.1 Numerical Values for the Wilson Loops . . . . . . . . . . . . . . . . . . . . . . . . . 40 A.2 Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Abstract
Gauge theories currently dominates our description of elementary particles and their interactions. Starting from the theory of electrodynamics (the simplest of the gauge theories) I will introduce abelian and non-abelian gauge theories. As a precursor I will discuss classical eld theory and the Lagrangian formulation. I will in particular introduce Noethers theorem and show the important connection between continuous symmetries of the Lagrangian and conservation laws. When introducing gauge theories we discover why the existence of gauge elds and gauge invariance is a necessity and my work will eventually lead to non-abelian gauge theories and the famous YangMills Lagrangian. Computation of quantities associated with gauge theories are in most cases dicult to perform analytically. This leads to the introduction of the path integral formulation as a modern way to quantise quantum gauge theories. When all the prerequisites are in place I will introduce numerical techniques to simulate quantum gauge theories via a discretised four-dimensional spacetime lattice. The lattice formulation will enable me to perform simulations of a pure SU(2) gauge theory using the path integral formulation and the heat-bath algorithm. The simulation will allow me to extract the string tension (of the static quark-antiquark potential) and analyse properties such as connement and asymptotic freedom. These results will be interpreted in connection with the theory of the strong nuclear interaction, quantum chromodynamics.

ii

SECTION
E=
0

1
(Gausss law) (Faradays law) (Amperes law)

Classical Electrodynamics
In this section I will derive some fundamental aspects of classical electrodynamics essential for my study of quantum gauge theories. In the rst part of the section I will show how the Maxwell equations can be expressed using the electric and magnetic potentials and how an electromagnetic eld behave under Lorentz transformation. These calculations will be based on the dierential form of the Maxwell equations.

B=0 E= B t
0

B = 0 J + 0

E t

The derivations serve two equally important purposes. When rewriting the Maxwell equations in terms of the potentials we will see how gauge invariance is an integral part of the equations. The importance of this gauge invariance will be claried in a subsequent section. The second purpose is to introduce the electromagnetic eld tensor and the associated four-vector notation of electrodynamics. The second part of the section will be concerned with the Lagrangian formulation of electrodynamics and classical eld theory in general. We will see how the Maxwell equations can be derived from the electromagnetic Lagrangian using the Euler-Lagrange equation and how symmetries and conservation laws are connected using Noethers theorem.

1.1

Potentials and Gauge Invariance

The rst thing we need, is to determine the relationship between the electromagnetic eld and the potentials. This can be done fairly easy by analysing the Maxwell equations. Due to the lack of magnetic monopoles the magnetic eld remains divergenceless in all cases i.e. the magnetic eld can be expressed as the curl of the potential. B=A (1.1)

In the static case the electric eld is conservative and we can simply write it as the gradient of the potential. In the dynamic case we need to use Faradays law to obtain the relationship

1 of 52

between the electric eld and the corresponding potential. E= A ( A) E + t t =0 (1.2)

The above expression yields a conservative vector eld and this vector eld can now be written as the gradient of the potential. A E = V (1.3) t This result show how the electric eld depends on the magnetic potential as well. We will soon discover that the distinction between electric and magnetic elds depends on the point of view. The two relations between the elds and the potentials are already consistent with the two homogenous Maxwell equations, but we have to take a closer look at the inhomogenous equations. By substituting (1.1) and (1.3) into Gausss law we obtain V and for Amperes law we get ( A) = ( A) 2 A = 0 J + 0 which alternatively can be written as 2 A 0 2A 0 t2 A + 0
0 0

A t

= 2 V

( A ) = , t 0

(1.4)

A t

(1.5)

V t

= 0 J .

(1.6)

To get these equations into a more useful form we must now consider gauge invariance. Gauge invariance exists because the elds only depend on the change in potential and this will allow us to shift the potential by adding an extra term. V V +v AA+a (1.7)

We assume that the potentials (V, A) and (V + v, A + a) result in the same electromagnetic eld. If we want to satisfy this assumption we should consider the expressions arising from the two transformations. B=A=A+a (1.8) A a A = V v t t t These equations add two restrictions to a and v , respectively. E = V a=0 v + a =0 t (1.9)

(1.10) (1.11)

2 of 52

The rst restriction implies that a = for some scalar and by applying this result to the second restriction we obtain v+ = 0. (1.12) t The second restriction now implies that the term inside the parentheses is a scalar k (t) independent of the spatial coordinates, but it may depend on time. This leads to the following result. v+ = k (t) (1.13) t We could, however, simply absorb the scalar k (t) into since this does not inuence the gradient of either. From this analysis we are now able to construct the gauge invariance of the potentials. A A + V V t

(1.14)

In the next section we will see why the existence of this gauge invariance is important. For now we will simply use it to adjust the divergence A. There exists a lot of dierent gauges (choices for the divergence), but by choosing the Lorentz gauge we obtain several advantages such as equal priority in both space and time and symmetry between the two equations describing the potentials. V A = 0 0 (1.15) t By inserting the Lorentz gauge into equation (1.4) and (1.6), respectively, we obtain a much more appealing result. In the expression below 2 is the dAlembertian generalising the Laplacian to four-dimensional spacetime.
2

V 2 V = t 0 A 2 2 A = 0 0 A = 0 J t V = 0
0

(1.16) (1.17)

The above result is the Maxwell equations expressed using the potentials in a simple and concise form.

1.2

Lorentz Transformation

I will now show how electric and magnetic elds change under Lorentz transformation. The derivation of the transformation rules are carried out by considering a capacitor in three dierent inertial frames, one at rest and two boosted. S0 y 6 S
6

S
6

v0 -

v -

3 of 52

The above sketch show our arrangement of inertial frames. The two velocities v0 and v are relative to the rest frame S0 but we need a third velocity, namely that S moves with velocity v relative to S . If we consider a parallel plate capacitor (in theory, two innite plates) aligned in the xz -plane, Gausss law tells us that the resulting electric eld (in the rest frame) is given by Ey = 0
0

(1.18)

where 0 is the charge density on each plate. This charge density is dierent in the rst boost frame S because the plates are shortened in the x-direction, thus giving us = 0 0 with 0 being the Lorentz factor for v0 . A similar result is obtained if we look at the capacitor in the where second boost frame S = 0 . If we want to derive the general transformation rules we we will need a magnetic as well as an electic eld. If we consider the capacitor in S and S have an electic eld due to the capacitor itself and a magnetic eld due to the movement of the inertial frames (and thus movement of the charge on the plates). Keeping the capacitor aligned in the xz -plane the corresponding elds are given by: Ey =
0

Bz = 0 v0 z = 0 B v

(1.19) (1.20)

y = E ,
0

Now we simply have to nd the relationship between the elds in the two inertial frames. This can be done using the relationship between the charge densities. 0 y = = = E
0 0

(1.21)

z = 0 B v = 0 0 v =

0 v

(1.22)

Using a little algebra we can calculate the ratio between and 0 in explicit form. 0 = 1+ vv0 c2 (1.23)

Combining this result with the explicit form of v obtained using Einsteins addition rule for velocities, we are able to calculate the nal result for the transformation. y = 1 + vv0 E c2 z = 1 + vv0 0 B c2
0

= (Ey vBz ) = Bz v Ey c2

(1.24) (1.25)

v + v0 1 + vv0 /c2

We now have two of the six components in our transformation. If we reposition our capacitor in the xy -plane we can derive two additional components. The derivation is identical to the one just performed, except that the right hand rule tells us that the direction of the magnetic eld

4 of 52

changes and we lose the minus sign. This is of course reected in the transformation rules too. z = (Ez + vBy ) E (1.26)

y = By + v Ez (1.27) B c2 The two remaining components Ex and Bx can be accounted for without the use of mathematics. If we once again reposition our capacitor, this time in the yz -plane, only the distance between the plates are shortened. However, the charge density is independent of this distance, and the x = Ex . We cannot electric eld stays the same. This leads to the simple conclusion that E account for the magnetic eld using our capacitor, but we might consider an ideal solenoid positioned along the x-axis. In this setup the magnetic eld is given by Bx = 0 ni with n being the number of turns per unit length and i is the current. Since the length of the coil is shortened during Lorentz transformation the number n increases, but simultaneously time is x = Bx . This dilated aecting the current. These two factors exactly cancel out such that B concludes our derivation of the transformation rules for electic and magnetic elds, summarised below. x = Ex , E x = Bx , B y = (Ey vBz ), E y = By + v Ez , B c2 z = (Ez + vBy ) E z = Bz v Ey B c2 (1.28) (1.29)

The transformation rules can be expressed in a more compact form using a second order antisymmetic tensor. This electromagnetic tensor contains information about the electromagnetic eld and it transforms in a well-dened way under Lorentz transformation. 0 Ex /c Ey /c Ez /c Ex /c 0 Bz By = Ey /c Bz 0 Bx Ez /c By Bx 0

(1.30)

Using the Einstein summation convention, Lorentz transformation of the electromagnetic eld tensor can be calculated as = F , F (1.31) where is the Lorentz transformation matrix. The derivation of the transformation rules used the fact that electric elds arises from static charges while magnetic elds are due to moving charges. The distinction between electric and magnetic elds are thus simply a question about point of view.

1.3

Four-vector Notation

Equation (1.31) uses the so called four-vector notation. Four-vector notation is almost de facto standard in theoretical physics and I will make extensive use of this notation in the rest of the thesis. Four-vector notation is an abstract index notation with some fairly simple rules. A four-vector is nothing but a four-dimensional vector with an index number associated to each element. The rst element in the vector is time related and the remaining three components are space related. I will use greek letters for indices running from 0 to 3 (elements associated with 5 of 52

spacetime) and latin letters otherwise. For greek letters the Einstein summation convention applies when an index is repeated both lowered and raised. For latin letters the Einstein summation convention is implied as long as any index is repeated.
3

A A =
=0

A A

(1.32)

In the above example A is a rst order tensor (an ordinary four-vector). The result of the implied sum is the generalisation of the scalar product to four-dimensional spacetime. When using this notation we have to take the metric signature into consideration. I have chosen to use the metric signature (-,+,+,+) and hence the metric tensor given by 1 0 = 0 0 0 1 0 0 0 0 1 0 0 0 . 0 1

(1.33)

From the metric tensor we observe that the zeroth component of any given four-vector will dier by sign. The metric tensor can futhermore be used to raise and lower indices. This will result in a change of sign on the zeroth component. For each index that needs to be altered we simply multiply with the metric signature. Remember the implied sum over repeated indices when considering the example below. A = A (1.34)

In this example A is a second order tensor (a matrix). The rst index denotes the row and the second index the column. A tensor is called contravariant if all indices are raised and covariant if all indices are lowered. This leads to one of the most important features of the four-vector notation. The implied sum over the product of a contravariant and a covariant tensor is invariant under Lorentz transformation. A A = invariant (1.35) Using this information we should now take a closer look at the Maxwell equations in four-vector notation. I have already stated how the transformation rules are dened in equation (1.31) using four-vector notation. To express the Maxwell equations in four-vector notation I will need the dual-tensor associated with F . This dual-tensor is formally dened in the following way. 0 Bx By Bz Bx 0 Ez /c Ey /c = By Ez /c 0 Ex /c Bz Ey /c Ex /c 0

G =

1 F 2

(1.36)

In the expression is the Levi-Civita symbol. We are also going to need the four-current dened as J = (c, Jx , Jy , Jz ) with J = v being the ordinary current density. Using four-vector

6 of 52

notation the Maxwell equations have a very compact form. F = 0 J G = 0 (1.37) (1.38)

The second equation is merely a consequence of the rst equation and the Bianchi identity. The use of the dual-tensor is therefore not strictly necessary, but having the explicit form can be useful from time to time.

F =

1 ( F 3

+ F + F ) = 0

(1.39)

One can easily verify that the dierential form of the Maxwell equations are contained within the two four-vector equations. Consider equation (1.37) for = 0 and implied sum over in explicit form. 1 Ex Ey Ez + + = 0 c (1.40) c x y z By rewriting this expression slightly we obtain Gausss law. E = 0 c2 =
0

(1.41)

For = {1, 2, 3} we obtain the three components of Amperes law. For example, using = 1 we obtain the x-component of this vector equation. 1 Ex Bz By + = c2 t y z B 1 E c2 t = 0 Jx
x

(1.42)

In a similar way equation (1.38) contains the two homogenous Maxwell equations. Gausss law for magnetism is given by = 0 and the three components of Faradays law using = {1, 2, 3}.

1.4

The Electromagnetic Lagrangian

To connect the Lagrangian formulation of electrodynamics with the previous statement of the Maxwell equations in four-vector notation, I will derive these equations as the equations of motion following from the electromagnetic Lagrangian. The Lagrangian consists of two terms describing the eld and the interaction, respectively. L = Lf ield + Lint = 1 F F J A 40 (1.43)

Before I begin the derivation I need the connection between the eld tensor and the potential. Together the electric and magnetic potential constitue a four-vector given by A = (V /c, Ax , Ay , Az ). Using this four-potential the eld tensor can be expressed as F = A A . (1.44)

In four-vector notation the gauge invariance of equation (1.14) simply becomes A A + . Note how the electromagnetic eld tensor is invariant under this transformation due to continuity 7 of 52

of the second order partial derivatives. In the derivation I will use A as the dynamical variable leading to the following expression for the Euler-Lagrange equation. L ( A ) L =0 A (1.45)

In the next subsection I will show how the Euler-Lagrange equation is derived from the principle of least action. Before we begin the actual derivation I will rewrite the Lagrangian by lowering all indices associated with the eld tensor F . We will also need to express the electromagnetic eld tensor using the four-potential. L= 1 F F J A 40 1 = ( A A )( A A ) J A 40 1 = ( A A A A A A + A A ) J A 40 (1.46) (1.47) (1.48)

The rst and the last term inside the parentheses are identical and likewise are the two middle terms, leaving us with a simpler expression. L= 1 ( A A A A ) J A 20 (1.49)

We can now consider the derivative inside the parentheses in the Euler-Lagrange equation. L 1 = ( A ) 20 ( A ) ( A ) ( A ) ( A ) A + A A A ( A ) ( A ) ( A ) ( A )

Because the Lagrangian is linear in all terms each of the above derivatives can be expressed by two Kronecker deltas. L 1 = A + A A A ( A ) 20 (1.50)

c By applying the rule of index contraction ab b = ac we get rid of the Kronecker deltas. In the same process we use the metric tensors to raise the indices again.

1 1 L = ( A + A A A ) = F ( A ) 20 0

(1.51)

This was the hard part of the derivation. The second term in the Euler-Lagrange equation is simply given by L J = J , (1.52) = A leading to the nal equation of motion F = 0 J . (1.53)

8 of 52

The above result is identical to the inhomogenous Maxwell equations in (1.37) and using the Bianchi identity we can obtain the two homogenous equations.

1.5

Noethers Theorem

We will now continue our study of the Lagrangian formulation by introducing Noethers theorem. Noethers theorem states that for every continuous symmetry of the Lagrangian there is a corresponding conserved quantity called a Noether current. We use the word symmetry for all transformations leaving the Lagrangian invariant. In this subsection I will try to motivate the mathematics behind the theorem and in the next subsection I will use the results to derive a conservation law. I would like to start o with something dierent, but highly related, namely the derivation of the Euler-Lagrange equation. This derivation contains an important step we are going to need when deriving Noethers theorem. The Euler-Lagrange equation is the result obtained using the principle of least action. If a system evolves over time in (conguration) space it follows the path that minimises the action. In the ordinary one dimensional case of scalars this extremum can be found by setting the derivative equal to zero and solve for the variable in question. In the case of elds we do something similar using variation of the eld. Assuming the Lagrangian does not depend on higher order derivatives the variation of the action can be written as L L + ( ) d4 x. (1.54) 0 = S = ( ) We can rewrite this using the product rule such that S = L ( ) L = L ( ) + L ( ), ( ) L ( ) d4 x. (1.55)

L ( )

(1.56)

The last term in the expression can be turned into a surface integral over the boundary of our conguration space. Assuming the deformation vanish on this boundary the surface integral is identical zero. This is the important step because it will allow us to change the Lagrangian by a surface term without aecting the action. The term inside the square brackets has to be zero given the integral need to vanish for arbitrary and this gives us the Euler-Lagrange equation. L L =0 (1.57) ( ) As long as our equation of motion satises this expression it will satisfy the principle of least action. We can now move on to the derivation of Noethers theorem. Consider a transformation of some eld + where is an innitesimal parameter and is a deformation of the eld. This is a symmetry operation if and only if the equation of motion is invariant under this transformation. To ensure this, the action needs to be invariant under our transformation, and we can thus allow the Lagrangian to change by a surface term i.e. by adding a four-divergence of some J . L L + J (1.58)

9 of 52

By variation of the eld we can determine the relation between J and the eld. This is easily done using our previous result in equation (1.56) above. L = L L ( ) + L ( ) (1.59)

The rst term disappear by virtue of the Euler-Lagrange equation and by setting the last term equal to J we obtain an expression for the conserved Noether current. J = 0, J = L J ( ) (1.60)

There is one such Noether current for each eld associated with the symmetry. If there are multiple elds, the Noether current is the sum of all elds. In many cases we will simply have J = 0 depending on the behavior of the Lagrangian under the symmetry in question. In general, if your symmetry parameter is a tensor of order N your conserved quantity can be expressed as a tensor of order N+1. So far we assumed to be a scalar, and hence, the conserved quantity was a four-vector. If we consider the innitesimal translation x x + we obtain the transformation + . Because the Lagrangian is a scalar too, it will transform in the same way. L L + L = L + ( L) (1.61)

This will result in four conserved currents, one for time and one for each of the spatial directions. We are able to write these currents in terms of a second order tensor. This tensor will be the canonical stress-energy tensor (used in the next subsection). T = L L ( ) (1.62)

1.6

Conservation Laws

We will now have a closer look on how to actually apply Noethers theorem to a eld, but let us start o by considering some dierent conservation laws and their associated symmetries. Conserved quantity Energy Momentum Angular momentum Charge Symmetry Time translation Spatial translation Spatial rotation Invariance of the electromagnetic eld

Energy and momentum can be combined into a single quantity due to the four-dimensional spacetime formulation. Conservation of charge is based on a dierent kind of symmetry and I will return to this in the next section on gauge theory. For now I will simply focus on the stress-energy (or energy-momentum) tensor for the electromagnetic eld. Using the fact that conservation of energy and momentum is associated with spacetime translation, we can simply use equation (1.62) to determine an expression for the conserved currents. The stress-energy 10 of 52

tensor does only contain contributions from the electromagnetic eld and not the interactions i.e. we should neglect the last term in our Lagrangian (1.43) when inserting into (1.62). In electrodynamics we take = A and using the result obtained in equation (1.51) we get = 1 T 0 1 F A + F F . 4 (1.63)

The above tensor is not symmetric, but we can construct a new tensor by adding a divergenceless where K is antisymmetric in its two rst indices. If we use 0 K = term K to T F A we are able to construct the standard stress-energy tensor. K = 1 ( F A + F A ) 0 (1.64)

From the equation of motion we know that F = 0 when there are no interactions. This leads to the following expression for the new tensor. + K = T + 1 F A T = T 0 (1.65)

we obtain the standard expression for the stress-energy tensor. By inserting the denition of T T = 1 0 1 F ( A A ) + F F 4 = 1 0 1 F F + F F 4 (1.66)

This was the derivation of the stress-energy tensor, but we still need to determine the continuity equation. If the interacting term in the Lagrangian is zero the conservation law simply reads T = 0. By allowing interactions the conservation law is less obvious and we have to calculate the derivative explicitly. T = 1 ( F )F + F F + 1 F F 2 0 (1.67)

We can use the metric tensors to raise the index on all derivatives. T = 1 1 ( F )F + F F + 2 F F 0 (1.68)

The rst term can be rewritten using the inhomogenous Maxwell equations, and moved to the left-hand side. The remaining terms on the right-hand side can afterwards be rearranged into a more convenient form. T + J F = 1 F F + F + F 20 (1.69)

The trick is now to use the Bianchi identity F + F + F = 0 to perform a substitution of the last two terms inside the parentheses. T + J F = 1 F F + F 20 (1.70)

11 of 52

The right-hand side is now a product of a symmetric and an antisymmetric factor, and thus, the entire right-hand side is zero. T + J F = 0 (1.71) The nal result is the most general expression for the conservation law of energy and momentum and we see that T = 0 is a special case arising when there are no interactions. The second term J F is the Lorentz force density commenly known as f = (E + v B). To convince ourself that this in fact is the continuity equation describing conservation of energy and momentum, we should try to write the stress-energy tensor (1.66) in explicit matrix form. Let us start o by considering the T 00 component. T 00 = 1 0 1 00 F0 F 0 + 00 F F 4 = 1 2
0E 2

1 2 B 0

(1.72)

We recognise this expression as the energy density of the electromagnetic eld. Let us now take a look at the T 01 component. T 01 = 1 0 1 11 F1 F 0 + 01 F F 4 = 1 (By Ez Bz Ey ) 0 c (1.73)

This result is the x-component of the Poynting vector (divided by c), dened as the cross product between the electric and magnetic eld. S= 1 (E B) 0 (1.74)

The Poynting vector is a direct measure of the electromagnetic momentum p = 0 0 S. All the remaining components can be obtained in the same way. By doing so we can write the full expression for the stress-energy tensor 1 1 2 ( 0E 2 + B2) 0 Sx /c = Sx /c Sx /c Sx /c xx yx zx Sy /c Sz /c xy xz , yy xz zy zz

(1.75)

where ij are the Maxwell stress components, dened by the following expression. ij =
0 Ei Ej

1 1 Bi Bj 0 2

0E

1 2 B ij . 0

(1.76)

From this analysis of the components in the tensor we conclude that conservation of the stressenergy tensor indeed is conservation of energy and momentum for the electromagnetic eld.

12 of 52

SECTION
2.1 The Klein-Gordon Field
L = | |2 m2 ||2 = ( )( ) m2

Introduction to Gauge Theory


A gauge theory is a special type of eld theory in which the Lagrangian is invariant under certain transformations. We have already seen how energy and momentum is conserved due to spacetime translation, and this symmetry exists independent of gauge invariance. In general, conservation of energy, momentum, and angular momentum are all due to spacetime symmetries. A gauge theory is concerned with another kind of symmetries, namely symmetries that exists as a consequence of gauge invariance. These symmetries are commenly known as internal symmetries. A physical eld, such as the electromagnetic eld, yields a measureable quantity at each point in space. The underlying potential is dierent because we are unable to measure an absolute value, only the dierence in potential between to points are measureable. The eld is a realisation of the change in potential and not the potential itself. This leads to the concept of gauge invariance. As long as we are able to maintain the same change in potential we get the same physical eld. Each gauge theory is associated with a given symmetry group covering all possible gauge transformations. In physics we are mainly interested in the unitary groups. The simplest unitary group U(1) is an example of an abelian group and the larger SU(n) groups are non-abelian. In this section I will reveal the importance of gauge elds and the connection to symmetry groups. It should be noted that from now on I will use natural units = c = 1 in the derivations.

As an introduction to the concept of gauge theories and the consequence of gauge invariance, I will present a simple abelian gauge theory based on the complex-valued Lagrangian below. (2.1)

For simplicity I will treat and as independent elds. This is a somewhat articial example but it contains all the properties we need in our explanation. Using the Euler-Lagrange equation we can obtain the equations of motion for the two elds. These equations will be the well-known Klein-Gordon equations. ( + m2 ) = 0 ( + m ) = 0
2

(2.2) (2.3)

The phase transformation ei is a symmetry of the Lagrangian. The Lagrangian is, in other words, invariant under the symmetry group U(1) because ei is the generator of elements 13 of 52

in U(1) using the parameter . To nd the conserved quantity associated with this symmetry we need to determine the deformation of the eld . This is done by considering the innitesimal form of the symmetry. + i i

(2.4) (2.5)

Using Noethers theorem, and especially the result obtained in equation (1.60), we can write the following expression for the conserved Noether current (we have to remember that the Noether current is the sum of both elds). J = i( ) (2.6)

This is an example of a global symmetry i.e. a transformation independent of position. If we let = (x) be position dependent we turn the transformation into a local symmetry. This is a much stronger statement and unfortunately harder to satisfy. The position dependent transformation ei(x) does not aect the mass term in our Lagrangian, but the derivative will yield a series of unwanted terms destroying the invariance. The reason for this being that we now have dierent transformation rules for each point in space. To solve this problem we need a way to compare the value of the eld at dierent points in space independent of the phase. By introducing a new eld (the gauge eld) we are able to compensate for the phase transformation, and this will allow us to construct the local symmetry. Assuming the gauge eld is given by some A we can introduce the covariant derivative given by D = igA . (2.7)

The covariant derivative is designed in way that will eliminate the extra terms introduced by the ordinary dierential operator. Assuming that the gauge potential has the following transformation law, we can show that the covariant derivative is independent of local phase rotation. 1 A A + (x) g (2.8)

If we compare this transformation with equation (1.14) the is equivalent to (x)/g with g being the coupling constant. The coupling constant is a measure of the strength of the force exerted in an interaction. In the case of electromagnetism the coupling constant is the charge of an electron. If we apply gauge transformation and phase rotation on the covariant derivative simultaneously, we obtain the following transformation. 1 D + ig A (x) g ei(x) (2.9)

14 of 52

Using a little algebra we can show that the covariant derivative indeed is phase independent. D ei(x) + iei(x) (x) + igA ei(x) iei(x) (x) = ei(x) ( igA ) = ei(x) D (2.10) (2.11) (2.12)

The same calculation goes for . Without the gauge eld and gauge invariance we would not be able to construct a local symmetry. This would pose several limitations and the construction of useful Lagrangians would be limited. This is why gauge elds are a crucial part of several major eld theories.

2.2

Quantum Electrodynamics

I would like to briey talk about quantum electrodynamics because it is the simplest real gauge theory and because conservation of electrical charge is a consequence of phase invariance in this theory. Quantum electrodynamics describes the interaction between light (photons) and matter (fermions). Fermions are spin-1/2 particles and in quantum electrodynamics they are described by Dirac spinors . The associated Lagrangian consists of three dierent terms. (i m) 1 F F e A L = LDirac + LM axwell + Lint = 4 (2.13)

The rst term is associated with the wave function of the fermion and the second term we recognise as the electromagnetic eld. The last term describes the interaction between the fermion and the electromagnetic eld. Assuming the fermion is an electron then e is the electrical charge. = 0 with being the Dirac matrices. The Lagrangian Furthermore one should note that can be written in more compact, but less convenient form using the covariant derivative. (i D m) 1 F F L= 4 (2.14)

The Lagrangian contains the fermion Dirac eld and the electromagnetic vector eld A , both with simple equations of motion. For the Euler-Lagrange equation yields L ( ) L ) + e A + m = 0. = (i (2.15)

(which corresponds to the antiparticle) into By taking the complex conjugate we can turn and by use of the covariant derivative we a get very simple expression. i e A m = (i D m) = 0 (2.16)

Because we already calculated the equation of motion for the electromagnetic Lagrangian we can use the result of equation (1.51) in combination with L , = e A (2.17)

15 of 52

to state the second equation of motion for the eld A . . F = e (2.18)

From the asymmetry of the eld tensor we can deduce the continuity equation J = 0 for . This is conservation of electric charge for the current J . The symmetry group of J = quantum electrodynamics is still U(1) which means that this Lagrangian is also invariant under ei(x) and the corresponding gauge eld is the electromagnetic potential. Using Noethers theorem one can derive the current J as the Noether current of the global U(1) symmetry. The covariant derivative has another interesting property. If we consider the commutator relation we see that it actually denes the associated eld tensor. [D , D ] = [ , ] + ie[ , A ] + ie[A , ] e2 [A , A ] = ie( A A ) = ieF This is a very useful property, because it allows us to easily determine an expression for the eld tensor.

2.3

Yang-Mills Theory

The previous examples was based on the simplest non-trivial symmetry group U(1). The theory of Yang and Mills extends gauge invariance to non-abelian symmetry groups, providing us with a larger set of possible Lagrangians. Using our previous knowledge I will try to motivate the idea behind the Yang-Mills Lagrangian. Let us start o by considering the transformation exp(ia ta ) (2.19)

where a is a parameter and ta are the generators of the symmetry group we want to use. For SU(n) we will have n2 1 such generators. These generators should satisfy the commutator relation [ta , tb ] = if abc tc where f abc are the structure constants. In the fundamental representation 1 ab they should furthermore be orthonormalised such that tr(ta tb ) = 2 . In innitesimal form the transformation reads (1 + ia ta ) = + ia ta , (2.20) with 1 being the identity element of the group. I will not write this explicitly in the rest of the thesis but one should keep in mind that the identity element depends on the group in question. If a is position independent we have a global symmetry and this adds nothing new to our previous analysis. Using a = a (x) we get the more interesting local symmetry and this will force us to introduce a gauge eld and adjust the derivative. The covariant derivative will be adjusted to the use of group generators and g is coupling constant of the associated group.
a D = igAa t

(2.21)

We see how the gauge eld gets an additional index associated with the group generators. a Using index contraction on a we could simply write A = Aa t and the notation would be equivalent to the U(1) case. We can now use the covariant derivative to determine the eld

16 of 52

tensor.
b b 2 a a b a a [D , D ] = [ , ] ig [ , Ab t ] ig [A t , ] + g [A t , A t ] a b a b b a a = ig ( Ab t A t igA A [t , t ]) abc b c a a A A )t = ig ( Aa A + gf

From this we conclude that the eld tensor is given by


a a abc b c F = Aa A A . A + gf

(2.22)

The electromagnetic eld tensor is gauge invariant because the symmetry group is abelian. In the non-abelian case the eld tensor will not be gauge invariant, but we can still write a gauge invariant Lagrangian. The trace of the eld tensor will always be invariant so 1 a Fa L = F 4 (2.23)

will be a useful Lagrangian. This looks a lot like the electromagnetic Lagrangian except from the additional index. The full Yang-Mills Lagrangian is simply the Lagrangian of quantum electrodynamics adjusted to the non-abelian case (i D m) 1 F a F L= 4 a (2.24)

with the covariant derivative given by equation (2.21). In a pure gauge theory the Lagrangian is reduced to (2.23) because the only eld present is the gauge eld itself.

17 of 52

SECTION
1 Dx(t) = C( )

3
(3.1)

Feynman Path Integrals


In this section I will introduce the concept of Feynman Path Integrals. In the classical limit any object will follow a single unique trajectory, but in quantum mechanics a particle can follow any possible path between two points. Imagine the double-slit experiment. In this case the particle will be able to choose between either slit resulting in two dierent paths. The particle will have a given probability of following each of the two paths and the probability of reaching the destination will be the combined sum of the two paths. This leads to the concept of path integrals as a sum over an innite number of possible paths. Even though the particle can follow any path accessible, it is the paths closest to the classical path, that will give the largest contribution to the transition amplitude. However, we still need to take all other paths into consideration if we want the correct probability in the end. In the rst subsection I use the following denition of the path integral in one dimension. dxk C( )

Here Dx(t) is an instruction to integrate over all possible paths x(t) and C ( ) is a, so far, unknown constant. This is a discrete version of the path integral where time is sliced into pieces using a lattice. In the expression denotes the duration between two points in the time-dimension and x1 to xN denote the points in the space-dimension. This denition results in zigzag paths when doing the actual computations. To begin this section I will derive the transition amplitude for a single particle in one dimension and later on I will try to generalise the concept to arbitrary quantum systems and elds, and show how to calculate expectation values using the path integral.

Figure 1: This is an example of a single discretised zigzag path between the spatial points xa and xb in a given timespan T .

18 of 52

3.1

Transition Amplitude in One Dimension

To begin the introduction of the path integral I would like to use the simplest example i.e. a particle moving in one dimension. Because the path integral formulation at rst sight seems to be radically dierent from the Schrdinger formulation, I would like to show how the Schrdinger equation can actually be derived from the path integral. In order to do so we start with a single particle moving in one dimension under the inuence of a potential V (x). The action can be expressed as an integral over the Lagrangian and by discretising time we are able to rewrite this integral as a sum over all lattice points.
T

S=
0

1 mx 2 V (x) dt = 2

m (xk+1 xk )2 V 2

xk+1 + xk 2

(3.2)

The transition amplitude from xa to xb in some time T is the path integral over the complex exponential of the action. Formally we dene this transition amplitude in the following way (in this subsection I will write all factors of explicitly). U (xa , xb , T ) = xb | eiHT / |xa = Dx(t)eiS [x(t)]/ (3.3)

By inserting the discretised action along with our denition of the path integral we obtain the following expression for the amplitude. For simplicity we will only consider the very last time slice explicitly.

U (xa , xb , T ) =

i dx exp C( )

m (xb x)2 V 2

xb + x 2

U (xa , x, T )

(3.4)

As 0 the rst term in the exponential will result in rapid oscillations unless xb x. These rapid oscillations will more or less cancel out and the only contribution is when xb x. Using this argumentation I introduce a new small-valued constant such that x = xb + and hence dx = d .

U (xa , xb , T ) =

i d exp C( )

m 2 V xb + 2 2

U (xa , xb + , T )

(3.5)

We are now going to expand the exponential of the potential around may as well neglect the small /2 term.

= 0 to rst order. We

U (xa , xb , T ) =

d exp C( )

im 2 2

V (xb ) U (xa , xb + , T )

(3.6)

Under the assumption that the amplitude U (xa , xb + , T ) is a slowly varying function of x = xb + we may also expand this term around x xb = .

U (xa , xb , T ) =

d exp C( )

im 2 2

V (xb )

1+

2 2 + xb 2 x2 b

U (xa , xb , T )

19 of 52

We are now able to perform Gaussian integration on each term in the integral. U (xa , xb , T ) = 1 C( ) 2 im 1 i V (xb ) 1+ i 2 2m x2 b U (xa , xb , T ) (3.7)

By multiplying the two last parentheses while only keeping terms up to order following result. U (xa , xb , T ) = 1 C( ) 2 im 1 i V (xb ) +

we get the

i 2 + O( 2 ) U (xa , xb , T ) 2m x2 b

(3.8)

The only way the above expression makes sense in the limit 0, is when the factor in the rst parentheses is unity. We are thus able to identify our constant. C( ) = 2 im (3.9)

If we only consider terms of order and multiply by i we are nally able obtain the standard expression for the Schrdinger equation. i U (xa , xb , T ) = T 2 + V (xb ) U (xa , xb , T ) 2m x2 b
2

(3.10)

This result show the close relation to the Schrdinger formulation of quantum mechanics. Just as the squared norm of the quantum mechanical wave yields the probability, so does the squared norm of the transition amplitude. Even though the path integral formulation seems to be very dierent it is nothing but another approach to quantum mechanics.

3.2

Generalisation of the Path Integral

I will now generalise the path integral to an arbitrary quantum system described by coordinates q = {q i } and conjugate momenta p = {pi } with a given Hamiltonian H (q, p). We begin with the same equation for the transition amplitude (from now on I will not write factors of explicitly). U (qa , qb , T ) = qb | eiHT |qa Again we discretise time in slices of = T /N with N being the number of slices. By doing so the exponential function becomes a product of innitesimal contributions. eiHT = eiH
N

(3.11)

The trick is now to use the identity operator to insert a complete set of intermediate states between each factor of eiH , in the form: 1=
i i dqk

|qk qk |

(3.12)

20 of 52

By inserting these factors for k = 1 . . . (N 1) while identifying q0 = qa and qN = qb we may write something along the lines of qb | eiH |qN 1 qN 1 | eiH |qN 2 qN 2 | eiH |qN 3 . . . q2 | eiH |q1 q1 | eiH |qa . (3.13)

For simplicity I skipped the integral term inside the parentheses in the identity operator. In the limit 0 we may Taylor expand the exponential function. qk+1 | eiH |qk qk+1 | 1 iH + O( 2 ) |qk (3.14)

We now see that the Hamiltonian is an operator on the state |qk and we should thus consider what terms this operator could contain. The simplest term is merely a function of the coordinates. In one dimension this would give us something like a| f (x) |b = f (b) a|b = f (b)ab if the system is orthonormal. In the general case we get something similar, but the normalization is a bit dierent. i i qk+1 | f (q ) |qk = f (qk ) qk+1 |qk = f (qk ) (qk qk (3.15) +1 )
i

The result is, in other words, zero unless all coordinates are equal. We can with advantage express the Dirac delta function in the following way. (a b ) = 1 2

eip(ab) dp

(3.16)

Using the above denition of the Dirac delta function we are able to rewrite the expression. qk+1 | f (q ) |qk =
i

dpi k 2

qk + qk+1 2

exp i
i

i i pi k (qk qk+1 )

(3.17)

Next we want to consider a function that only depends on the momenta. This is easier because the result follows more naturally. Again let us take a look at this example in one dimension. a| f (p) |b = dp f (p) a|p p|b = dp f (p) exp(ip(b a)) (3.18)

We can more or less adopt this result directly as long as we adjust for our normalization. qk+1 | f (p) |qk =
i

dpi k 2

f (pk ) exp i
i

i i pi k (qk qk+1 )

(3.19)

The previous two expressions for the coordinates and momenta are almost identical. Under the assumption that the Hamiltonian only consists of terms that depend on either the coordinates or the momenta we are able to write a combined expression. qk+1 | H (q, p) |qk =
i

dpi k 2

qk + qk+1 , pk exp i 2

i i pi k (qk qk+1 ) i

(3.20)

Sadly, the above expression is not valid in the general case because the Hamiltonian act as 21 of 52

an operator on the left-hand side. This means the order of the ps and q s are important. If we assume that the Hamiltonian is Weyl ordered (the ps and q s appear symmmetrically in the Hamiltonian) we can keep the above expression. It is possible to put every Hamiltonian into Weyl order using commutation rules and this justies the use of the expression. Using the result of equation (3.14) we are able to write the expression below. qk+1 | eiH |qk =
i

dpi k 2

exp i H

qk + qk+1 , pk 2

exp i
i

i i pi k (qk qk+1 )

(3.21)

i and a sum The above expression is for a single step in time. We need to add an integral over qk over k in the exponential function if we want to obtain the complete expression for the transition amplitude.

U (qa , qb , T ) =
i,k

i dqk

dpi k 2

exp i
k i

i i pi k (qk qk+1 ) H

qk + qk+1 , pk 2

(3.22) Considering the limit 0 we can dene the expression below. It should be fairly easy to see the connection directly.
T

U (qa , qb , T ) =
i

Dq (t)

Dp(t) exp i
0

dt
i

pi q i H (q, p)

(3.23)

Assuming we have a non-relativistic particle in one dimension we can show that (3.22) reduces to equation (3.4), if we take into account that this equation only describes a single time slice. Our particle will of course have the classical Hamiltonian H = p2 /2m + V (q ) and in this case the path integral become U (qa , qb , T ) =
k

dqk

dpk 2

exp i
k

p2 pk (qk qk+1 ) k V 2m

qk + qk+1 2

If we use the Gaussian integral given by

exp(bx ax )dx =

exp a

b2 4a

(3.24)

we can calculate the integral over pk . This integration will introduce the familiar constant C ( ) from the previous section and, as expected, the entire expression is similar to (3.4). U (qa , qb , T ) = 1 C( ) dqk C( ) exp i
k

m (qk qk+1 )2 V 2

qk + qk+1 2

(3.25)

3.3

The Path Integral for Fields

We have now seen how the path integral is formulated in the case of particles, but we should also consider how we can generalise it to elds. Equation (3.23) is valid for any quantum system 22 of 52

and hence also for elds. In the case of elds the position is simply replace by the eld values (x) and the momenta by the momentum density (x). q , p= L L = q (3.26)

Using these transformations the path integral can be written as


T

U (a , b , T ) =

D exp i
0

H(, ) d4 x

(3.27)

where the integral in the exponential function has been turned into an integral over spacetime because we use the densities instead. For a scalar eld the Hamiltonian density can be written as 1 2 H= + ()2 + 2V () , (3.28) 2 where 2V () = m2 2 for a free theory. By inserting this Hamiltonian in the path integral we can perform an integration over the momentum density using (3.24) as we did before.
T

U (a , b , T ) =

D exp i
0

L d4 x

(3.29)

1 Here L = 2 ( )2 V (). This result involves a non-trivial constant, which I have not written explicitly. However, we are mainly going to use the path integral to obtain expectation values of observables. In this case the constant is unimportant because the expectation value is a normalized quantity. The expectation value of a given observable F [] can be calulated as

F =

DF []eiS [] , DeiS []

(3.30)

where S [] is the action of the eld. Together with the physical interpretation of the path integral, this is the important result we are going to use in the numerical computations later on.

23 of 52

SECTION
= t1 = 1 2 x
1 2

4
1 2

Lattice Gauge Theory


All prerequisites needed in a simple lattice simulation are now in place and this section will be concerned with the techniques of lattice gauge theory. My numerical computations will be performed using a pure gauge theory based on the simple SU(2) group. Because SU(2) is non-abelian we will have a Yang-Mills theory, where the group generators are the three Pauli matrices multiplied by one half. 0 1 , 1 0 t2 = 1 = 2 y
1 2

0 i , i 0

t3 = 1 = 2 z

1 0 0 1

In a pure gauge theory (where the only eld present is the gauge eld) the Lagrangian can be expressed using equation (2.23) and the group generators. 1 a 1 1 a a 2 L = F Fa = tr [F t ] = tr(F F ) 4 2 2 (4.1)

In the rst part of the section I will discuss how to properly discretise spacetime. This will be followed by an introduction of the heat-bath algorithm used to perform the actual simulations. Before I present the numerical results I will give a fairly non-technical description of the properties of an SU(2) gauge theory with connection to the real theory of the strong nuclear interaction, quantum chromodynamics.

4.1

Discretisation and the Continuum Limit

In lattice gauge theory we discretise spacetime in order to perform computations that would otherwise be dicult to perform analytically. Discretisation of spacetime is not without problems because we break all spacetime symmetries including Lorentz invariance. Even the number of gauge invariant objects are reduced by discretisation. With all these disadvantages taken in to consideration the lattice formulation is still a very powerful tool because it allows us to perform computations of non-perturbative quantities, and because it is possible to recover the correct continuum results by taking appropriate limits. The simulation is performed using a four-dimensional hypercubic lattice with N points in each direction. To eliminate surface eects I will impose periodic boundary conditions on the lattice. Discretisation of the spatial directions are straight forward and intuitively clear, but the temporal direction requires an extra step. Gauge theories (quantum eld theories in general) are formulated in the relativistic Minkowski spacetime. Simulations, however, are most easily done in Euclidean space, so in order to transform Minkowski space into Euclidean space we 24 of 52

perform a Wick rotation into imaginary time t it. This will intuitively rotate the temporal direction by 90 degrees on the complex plane, such that we get four orthogonal Euclidean axes. Discretisation of the temporal direction is now simply a matter of extrapolation from three to four dimensions. However, the Wick rotation will (among other things) also impact the zeroth component of the gauge eld A0 iA0 and because of this, the Lagrangian in (4.1) will change sign L L. Last but not least, the action S will also change because the integration measure changes d4 x id4 x. This will change the argument of the exponential function in the path integral from purely imaginary to real. Z= D eS (4.2)

We can now see that the integrand of the path integral is equivalent to the Boltzmann factor (with a so far hidden constant). In fact, we will soon discover the close connection to statistical mechanics. In the previous section we already considered a discretised version of the path integral. If we want to use the path integral formulation for our lattice we need to determine a discretised expression for the action of the system. This action should be gauge invariant and the discretised version of our theory should reduce to the usual Yang-Mills theory in the continuum limit where the lattice spacing goes to zero. In a pure gauge theory the action will be given by the integral of the Lagrangian in equation (4.1). The eld tensor can be regarded as the generalised curl of the potential. Using Stokess theorem we know that an integral over a vector eld along a closed contour is equivalent to a surface integral over the curl of the vector eld. From this argumentation we introduce the gauge invariant Wilson loop as an integral over the potential along a closed contour. W (C ) = exp ig
C

A dx

(4.3)

In this expression g is still the coupling constant. We will see that the exponential is required in order to obtain the square of the eld tensor in the end. In the discretised case the smallest closed contours (Wilson loops) are squares connecting four lattice points (see sketch below). These contours are usually called plaquettes and the sum over all plaquettes will constitute the action of the system.
r r r r r r r r r r r r r r r r r r r r r r r r

The discretisation of spacetime makes the path integral an ordinary integral, and because the lattice has a nite extent in in all directions, the path integral becomes nite dimensional. So naturally, by writing the action as the sum over all elementary plaquettes the path integral is nite dimensional. I will return to the actual use of the path integral when discussing the heat-bath algorithm used for the simulations. Instead I will now show that we actually recover the usual Yang-Mills theory in the continuum limit when using this action. In order to do so 25 of 52

we need to introduce the concept of links. The degrees of freedom in a pure lattice gauge theory will be links between lattice points i.e. each point will be associated with four links to neighboring points. I will denote the link from site x in the -direction as U (x) and each link will be an element of our gauge group SU(2). If we traverse a link in the opposite direction we simply use the inverse element. U (x + ) = U (x)1 (4.4) In the case of SU(n) the inverse is nothing but the conjugate transpose. We can dene each link as a discretised version of equation (4.3) above. U (x) = exp(igaA ) (4.5)

In this expression g is the coupling constant and a is our lattice spacing. Since A is an element of the Lie algebra, U (x) is an element of SU(2). We have in other words used the a a index contraction A = Aa t on the potential where t are the Pauli matrices mentioned earlier. For simplicity, the potential A is evaluated half way along the link i.e. at x + 1 . Using the 2 denition of our links we can introduce the discretised version of the Wilson loop. In this case the Wilson loop will be the product of the links encountered around the contour.
 6

? -

Starting from the upper left corner (denote this point x = x ) this contour will be given by the product of the four links encountered around the loop (with proper path-ordering).
W (C ) = U (x)U (x + )U (x + )U ( x)

(4.6)

Note how I use downwards as the positive direction on the sketch above. Secondly note that the last two elements are marked with a dagger, because we traverse the links in the opposite direction. Each plaquette will contribute an action S and the total action is the sum over all plaquettes. S= S (4.7) Using the mathematical denition of the plaquette we can write the plaquette action S as the trace over the combined links.
1 (x + )U (x) S = 1 2 tr U (x)U (x + )U

(4.8)

The trace of SU(2) elements will automatically be a real number and the factor of one half is normalisation of the trace. The leading normalisation factor will be determined later on, such that each plaquette contribute an action between zero and two. Using the denition of the group elements (4.5) we can write the following equations for a plaquette in the (, )-plane,

26 of 52

assuming the spatial coordinates for A are located half way between the points. U (x) = exp(iagA (x + 1 a )) 2 U (x + ) = exp(iagA (x + a + 1 a )) 2
1 U (x + ) = exp(iagA (x + a + 2 a )) a )) U (x) = exp(iagA (x + 1 2

If we assume the potential A is smooth, we can taylor expand around x to rst order using the covariant derivative. aD A ]) U (x) = exp(iag [A + 1 2 U (x + ) = exp(iag [A + aD A + 1 aD A ]) 2
(x + ) = exp(iag [A + aD A + 1 U aD A ]) 2 (x) = exp(iag [A + 1 aD A ]) U 2

Most of these terms will simply cancel out and by inserting the remaining terms into (4.8) we obtain a simple expression. tr exp(iga2 (D A D A )) S = 1 1 2
1 = 1 2 tr exp(iga2 F )

(4.9)

In the above expression we have recovered the eld tensor. By expanding the exponential around a = 0 we can obtain an even more useful expression. S = 1 1 tr 1 + iga2 F 1 g 2 a4 F F 2 2 (4.10)

The term of order a2 does not contribute to the trace because the eld tensor is traceless. The trace of the identity element is simply 2 and by moving the rest of the constants outside the trace we obtain g 2 a4 tr (F F ) . (4.11) S = 4 If we identity = 4/g 2 and approximate the action by a spacetime integral over all plaquettes we obtain the usual action (the factor of one half is due to symmetry under , exchange). S= 1 2 tr (F F ) d4 x (4.12)

We have now showed how to discretise spacetime in such a way that we are able to recover the Yang-Mills theory in the continuum limit.

4.2

The Heat-bath Algorithm

Before we discuss the actual algorithm we should make some important observations. As already mentioned the path integral will become nite dimensional in the lattice formulation. Using the already discussed action and the previously determined value of we can write the path integral

27 of 52

as a product over all plaquettes (the integration measure will be specied in a short while). Z= exp(S (U )) dU (4.13)

We now see that the path integral is identical to the partition function, and this will make all the tools from statistical mechanics available to us. In the lattice formulation the path integral might be nite, but the number of degrees of freedom is still huge, making the actual computation impractical. We are instead going to adopt a statistical method for the computations. The path integral is a weighted sum over all possible path congurations, but the Boltzmann factor will suppress a very large percentage of these. In fact, we only need a small number of congurations to determine the dynamics of the system, as long as these congurations are weighted according to the Boltzmann factor. To simulate these congurations we are going to use the heat-bath algorithm. This algorithm was originally designed for the Ising spin model, but due to the path integrals connection to statistical mechanics we can adjust it to a gauge theory as well. Using this algorithm we successively update each link using a heat- bath at inverse temperature in order to thermalise the system. Once the system is in equilibrium we can obtain expectation values as shown in (3.30) by simply averaging over all M congurations, because the exponential weightning will be build into the algorithm. F = DU F [U ]eS [U ] 1 M DU eS [U ]
M

F (Un )
n=1

(4.14)

In this way we are able to calculate the expectation value of any gauge invariant quantity. In the simulations I will mainly be interested in the expectation value of Wilson loops. For Wilson loops we have M = 6N 4 congurations because each lattice point is associated with six plaquettes. From the above expression we are able to conclude that the statistical error will decrease as 1/ M . We are in other words going to need a fairly large lattice to reduce the error. Let us now continue with the construction of the heat-bath algorithm. Before the algorithm starts we need some initial conguration. I have chosen to use an ordered starting conguration with all links set to identity (cold start). To bring the system into equilibrium we replace each link (one at a time) with a new link chosen randomly from all elements in the SU(2) group, with exponential weightning according to the Boltzmann factor in the path integral. dP (U ) exp(S (U ))dU (4.15)

Here P is the probability density for choosing some link U . Replacement of all links in the lattice will constitute a single iteration of the algorithm and the next step in a Markov chain of congurations. All elements of SU(2) can be parameterised using the three Pauli matrices and the identity matrix. U = a0 I + ia1 x + ia2 y + ia3 z = a0 + ia3 a2 + ia1 a2 + ia1 a0 ia3 (4.16)

Here we assume that a is real four-vector of unit length. The SU(2) group is isomorphic to the 28 of 52

four-dimensional unit sphere S 3 (there is a one-to-one correspondance between points on the sphere and elements in the group). Finding elements of SU(2) will in other words be equivalent to calculation of points on the four-dimensional unit sphere. Using this argumentation we introduce the invariant Haar measure given by dU = 1 (a2 1)d4 a. 2 2 (4.17)

When updating a given link we only need to consider the contribution to the action given by the six plaquettes containing the given link. In fact, for each of the six plaquettes in question we need the product of the three remaining links in order to determine a new value for the link we want to update. The product of such three links are called a staple due to their shape. There will be six staples, two in each of the three directions orthogonal to the link.
 6 -

? -  ?

The above sketch show the two staples in the (, )-direction associated with the black link in the middle. The backwards staple is the blue one and the forwards staple is the red. If we s for s = 1 . . . 6 we can write (4.15) as denote the staples by U
6

dP (U ) exp

1 Tr 2

U
s=0

s U

dU,

(4.18)

where U is the link we want to update. Because SU(2) elements have positive determinant we can fairly easy conclude that any sum of SU(2) elements is proportional to another element of SU(2) with the square of the determinant being the factor of proportionality.
6 6 1/2

s = k U , U
s=0

k = det
s=0

s U

(4.19)

Using this property we can rewrite (4.18) into a more suitable expression. 1 ) exp dP (U U
1 k Tr(U ) 2

dU =

1 (a2 1) exp(ka0 )d4 a 2 2

(4.20)

To generate a new element for our link we simply have to determine points on the fourdimensional sphere with exponential weightning towards a0 and the three remaining points chosen randomly (but with appropriate norm). Following this prescription we simply replace the 1 where U is the element we need to generate. We can rewrite original element with U = U U the Dirac delta function in (4.20) into a more explicit expression and this will help us determine an algorithm for selecting a0 appropriately.
1/2 1 (a2 1) exp(ka0 ) = 2 da0 d(1 a2 exp(ka0 ) 0)

(4.21) 29 of 52

Here d = sin dd is the dierential solid angle of the remaining three components of a and 1/2 . Now we simply have to determine together they should constitute a vector of length (1 a2 0) a value for a0 stochastically in the interval 1 < a0 < 1. We already know the probability density given by P (a0 ) = (1 a2 (4.22) 0 ) exp(ka0 ), so we simply choose a random number x uniformly distributed in the interval exp(2k ) < x < 1. Using the random number we can now determine a trial a0 in the following way. a0 = 1 + ln(x) k (4.23)

1/2 to correct for this factor. If the trial a0 is We accept this trial number with probability (1 a2 0) rejected we simply pick another random number and try again. The remaining three components can be determined using two random numbers x and y in the interval (0, 1) in combination with 1/2 the parameterisation of the sphere in three dimensions with radius r = (1 a2 . 0)

a1 = r sin(x ) cos(2y ) a2 = r sin(x ) sin(2y ) a3 = r cos(x ) This concludes the heat-bath algorithm. For my simulations I have written an implementation in C++ that enables me to calculate Wilson loops of dierent sizes, depending on the value of . The source code can be found in Appendix A.2.

4.3

Properties of an SU(2) theory

Before we review the results of the simulation we should consider some of the properties associated with our gauge theory. An SU(2) theory will have two color charges. The real world theory of the strong nuclear force, quantum chromodynamics, is based on the larger SU(3) group where we have three color charges (usually denoted red, green, and blue). In QCD a quark can take on any of the three colors and quarks can be combined into mesons and baryons as long as the color combination is neutral. A green quark can for example be combined with an antigreen quark (an antiparticle) in order to form a meson. The SU(2) theory will act in similar way, but with only two colors. There are two interesting properties that apply to non-abelian gauge theories in general i.e. connement and asymptotic freedom. These properties can be explained using the static quarkantiquark potential. The static potential is the limit where the quarks are assumed to be innitely heavy, point-like color sources. This is more or less equivalent to the use of a test charge in electrodynamics. The static quark-antiquark potential can be approximated by V (r ) = + r, r (4.24)

where is some constant and is called the string tension. The gure below show this potential as a function of distance.

30 of 52

Figure 2: The static quark-antiquark potential as a function of distance. For small distances we observe asymptotic freedom i.e. the static quark-antiquark potential becomes asymptotically weaker as the distance decrease. Because of asymptotic freedom quarks in very close proximity will appear as if they were free particles. For large distances we observe the opposite eect, because the static quark-antiquark potential rises linearly with distance. This phenomenon is known as connement and it is the reason quarks cannot exist as free particles. Instead they will combine into mesons and baryons. If one tries to pull two quarks apart the gluon ux tube connecting the two quarks will at some point break and the energy stored in the ux tube will manifest in a new quark pair and we will now have two mesons as shown in the sketch below.
} } } }

This is where the physical interpretation of the Wilson loop becomes extremely important. A particle traversing spacetime will gain a path dependent phase factor due to its interaction with the gauge eld. This phase factor is the Wilson loop dened in (4.3). Now, the action of this phase factor can be seen as an elementary excitation of the eld located on the loop. This elementary excitation can be interpreted as the creation of a static quark-antiquark pair which will annihilate again after a period of time.

Using this interpretation of the Wilson loop we will actually be able to extract the string tension associated with a static quark-antiquark pair. Because the potential energy depends linearly on the distance for large seperations, the Wilson loop is expected to decrease as a function of the area. W (C ) = exp(A + O(p(C ))) (4.25) Here is the string tension and A is the area of the Wilson loop. The error will be propertional to the perimeter of the loop p(C ). If we compared with the analytical expression for the Wilson loop (4.3) we clearly expect the string tension to depend on . This is not an exact expression but 31 of 52

it works fairly well for small to moderate values of beta. The area can be expressed as A = a2 S 2 where a is the lattice spacing and S is the side length (assuming the loops are squares). We will be able to measure the dimensionless quantity a2 as a function of the Wilson loop. a2 = ln W (C ) O(p(C )) + S2 S2 (4.26)

From now on I will refer to a2 as the string tension. Without going into detail about renormalization and the continuum limit we are still going to need a connection between the lattice spacing and the coupling constant. This connection can be written as a2 exp(k ) for some unimportant constant k . We are merely interested in the exponential drop-o as a function of because we are going to need it when interpreting some of the results. From our knowledge of this exponential drop-o, equation (4.25) will automatically be valid in the strong limit where 0, because the area is dominant. However, in the weak limit the equation will only be valid for (innitely) large Wilson loops. I will address this problem in a short while. Using the numerical techniques previously described we are now going to see how the theory behaves, and whether or not we can conrm the existence of connement and asymptotic freedom.

4.4

Numerical Results

The simulations are performed using 244 lattice points and carried out on an ordinary laptop. The lattice size is chosen as a balance between the required computational time and the statistical error associated with the observables. To obtain my results I used 200 iterations of the heatbath algorithm to thermalise the system and afterwards I performed another 200 iterations while simultaneously calculating observables. In the end I averaged over all measurements to obtain the nal result. The only observable I have calculated is various sizes of the Wilson loop. The simplest Wilson loop, the plaquette, is a direct measure of the action in the system. The expectation value of the plaquette P is given by the normalised sum over all plaquettes. P = 1 6N 4
1 tr(U 2

(4.27)

We should notice that the average of the action density is given by S = 2(1 P ). If we take a look at the calculated values in gure 3 (on the next page), we clearly see how the points follow the analytical values very precisely, in both the weak and strong coupling limit. We furthermore have a smooth transition between the two limits. The analytical expression for the strong and weak coupling limits can be calculated because the average plaquette value will be equivalent to the internal energy in the corresponding statistical mechanical system. From statistical mechanics we know how to calculate the expectation value of the internal energy using the partition function. We can adopt this result directly when replacing the partition function with the path integral. P = 1 ln Z 6N 4 (4.28)

32 of 52

Figure 3: The average plaquette value as a function of . The analytical values in the weak and strong coupling limit are plotted as well. The actual calculation of the expectation value in the two limits is not trivial, but the values are known to be as listed below.6 P = 4 3 4 (Strong coupling limit) (Weak coupling limit)

P =1

Because the standard deviation for the plaquette is of order 104 the error bars would not be visible on the plot, and I have therefore not added them. The standard deviations can be found in the appendix. We should also consider what happens for larger Wilson loops. If the Wilson loop is comparable to the lattice size we would expect deviations caused by the niteness of the lattice. I have only considered (square) Wilson loops up to 6 6 so the niteness should not be a problem. These results are shown in gure 4 on the next page. For the same reason mentioned before, I have not added error bars on this plot either.

33 of 52

Figure 4: The average value of dierent sized Wilson loops as a function of . Some known analytical values in the weak and strong coupling limit are plotted as well. We see that the average value of the Wilson loop decrease as a function of the loop side. Considering the connection between the Wilson loop and its area (4.25) this is expected. In the strong coupling limit we expect the following analytical expression P = 4
S2

(4.29)

where S is the side length of the Wilson loop. This behaviour is visible for the 1 1 and 2 2 Wilson loops, but for larger loop sides this value is approximately zero. In the weak coupling limit we expect the values to asymptotically approach unity as an inverse function of . This behaviour does also seem to be correct. For less than 2 the expectation value of large Wilson loops is signicantly smaller than the standard deviation (of order 104 ). This causes some of the obtained values to be slightly negative, but well within range of the statistical error. The string tension is obtained in the limit where the Wilson loop becomes innitely large. Luckily, in practice we can use some relatively small Wilson loops. In the strong coupling regime I am unable to obtain consistent values for Wilson loops larger than 2 2. Fortunately, the loops of size 1 1 and 2 2 both yields the expected value using equation (4.25). When we reach the transition between the strong and the weak coupling regime the equation no longer yields the expected result. In this case we expand the equation with lower order terms in the exponent. W (C ) = exp(A BS CS 2 ) (4.30) In this equation we identify C = a2 . When we reach the transition around = 2 the values for Wilson loops up to 6 6 begin to become fairly consistent. By tting these loops to the equation above we can extract a more precise value for the string tension.

34 of 52

Figure 5: Examples of curve tting to Wilson loops for various values of . Figure 5 show the tting of Wilson loops to equation (4.30) for various values of in the transition area. We see that the curves intersect the points very precisely in all cases. This should enable us to obtain a useful value for the string tension.

Figure 6: The extracted values for the quantity a2 as a function of . We now have the values for the string tension in gure 6 above. The horizontal line is the strong coupling limit and the vertical line is the weak coupling limit. These are given by the analytical

35 of 52

expressions below. a2 = ln 4 6 2 ( 2) 11 (Strong coupling limit) (Weak coupling limit)

a2 = exp

The expression for the weak coupling limit is not a true analytical equation, but an estimated t derived by Creutz.6 Up to and including = 1.6 the points are plotted using the pure area relation (4.25) for the Wilson loop. The remaining points are plotted using the tting method. In the strong coupling limit the points lie very close to the expected analytical values, and when we reach the transition to the weak coupling limit the points being to decrease correctly. However, when we reach 2.5 the points starts to diverge from the expected analytical value again. As already mentioned, the lattice spacing has an exponential drop-o as a function of . In the weak coupling limit this causes the perimeter of the Wilson loop to become more dominant than the area, and this is why equation (4.25) no longer remains valid. To circumvent this problem Creutz proposed to use the ratio between Wilson loops to calculate the string tension.5 (I, J ) = ln W (I, J )W (I 1, J 1) W (I, J 1)W (I 1, J ) (4.31)

In the above expression W (I, J ) is a rectangular Wilson loop of dimension I J . The ratio is constructed in such a way that the Wilson loops in the nominator and denominator has the same total perimeter and cancel out. This should allow us to obtain a much more precise value for the string tension in the weak coupling limit. A simple calculation using (4.25) show that the expression inside the logarithm is equal to exp(a2 ) and this yields = a2 . Because I already calculated the square Wilson loops I will use I = J in my calculations. Figure 7 (on the next page) show the extracted string tension using the Creutz ratio. In the strong coupling limit we obtain the same result as before, but in the weak coupling limit the obtained values are much more precise. The plot is created by gradually using larger Wilson loops (as compensation for the decreasing lattice spacing) to extract the string tension. In the strong limit I use I = 2 and in the weak coupling limit I use I = 3 . . . 5. I have tried to estimate some error bars for the calculated values on this plot. When performing the simulation I only stored the observables (i.e. the value of the Wilson loops) and the corresponding standard deviation. To estimate the statistical error I used a sort of bootstrapping method to resample the original data series. I constructed a Gaussian distributed data set for each Wilson loop using the known mean value and standard deviation. From these data sets I calculated the string tension and used the standard deviation (of the string tension) as an estimate of the error. This method is not perfect because the correlation between observables is lost. It should, however, give a reasonable estimate of the statistical error. One should furthermore note that the logarithmic scale on the gure distorts the error bars (the lower and upper error bars do have the same magnitude).

36 of 52

Figure 7: The extracted values for the quantity a2 as a function of using the Creutz ratio. To give a physical interpretation of the plot we need to remember that small values of corresponds to large distances and large values of corresponds to small distances. Using this interpretation of we can argue that connement seems to be present in the strong coupling limit and asymptotic freedom in the weak coupling limit. This show that an SU(2) gauge theory indeed admits connement as well as asymptotic freedom, just as quantum chromodynamics.

Figure 8: All the extracted values for the quantity a2 using dierent loop sizes. Figure 8 show all the values of the string tension for the dierent choices of I . We see that all Wilson loops diverge from the weak coupling limit once the value of is large enough. 37 of 52

Conclusion
From the theory of classical electrodynamics we derived and reviewed several important results. We derived the gauge invariance of the electromagnetic potential, and later on we observed that the existence of gauge invariance was a cornerstone in the construction of a local U(1) symmetry. As an introduction to the Lagrangian formulation we used the electromagnetic Lagrangian and derived the Maxwell equations as the equations of motion. By introducing Noethers theorem we were able to determine the relationship between continuous symmetries of the Lagrangian and corresponding conservation laws. As an example we used Noethers theorem to show the connection between the symmetry of spacetime translation, and the conservation of energy and momentum for the electromagnetic eld. Following the introduction of various concepts in classical eld theory we continued with a introductory study of gauge theories. We showed that gauge theories are concerned with internal symmetries, as opposed to spacetime symmetries considered in the previous section. We considered the internal symmetry of phase rotation of a complex scalar eld. We saw that the symmetry of global phase rotation was an intrinsic property of the Lagrangian. However, if we wanted to transform the phase rotation into a local symmetry we had to introduce the gauge eld and exploit the existence of gauge invariance. Just as spacetime symmetries resulted in a conserved quantity, so do (global) internal symmetries. We argued that conservation of electrical charge was a result of a global U(1) symmetry in quantum electrodynamics. From these preliminary studies of abelian gauge theories we expanded the concept to non-abelian groups. This lead to the famous Yang-Mills theory and the corresponding Lagrangian. To perform our numerical computations we needed a way to discretise gauge theories. This lead to the introduction of the path integral formulation. The path integral formulation provides a way of calculating quantum amplitudes and expectation values. Because the path integral formulation at rst sight seems to be radically dierent from the Schroedinger formulation, we started o by showing that the Schroedinger equation can actually be derived from the denition of the path integral. After this introduction we derived a general expression for the path integral and showed how to rewrite this expression for scalar elds. Using the previously obtained results we were now able to introduce the concept of lattice gauge theory. To perform our numerical computations we discretised spacetime using a fourdimensional hypercubic lattice. We saw how this discretisation was performed using Wilson loops, in way that allowed us to obtain the correct Yang-Mills theory in the continuum limit. The discretisation of spacetime turned our path integral into a nite dimensional ordinary integral, but the number of degrees of freedom was still huge. Fortunately, the path integral was now identical to the partition function used in statistical mechanics. From the connection to statistical mechanics we were able to adopt the heat-bath algorithm originally designed for the Ising spin model. When the algorithm was in place we were nally able to perform our numerical computations. We performed computations of various sized Wilson loops. From the interpretation of the Wilson loop as the creation of a static quark-antiquark pair, we were able to extract the associated string tension. Using this string tension we observed that a pure SU(2) gauge theory indeed admits connement as well as asympototic freedom.

38 of 52

Bibliography
[1] David J. Griths, Introduction to Electrodynamics, Prentice Hall, 3rd Edition, 1999. [2] John D. Jackson, Classical Electrodynamics, Wiley, 2nd Edition, 1975. [3] Michael E. Peskin and Daniel V. Schroeder, Introduction to Quantum Field Theory, Westview Press, 1st Edition, 1995. [4] Claude Itzykson and Jean-Bernard Zuber, Quantum Field Theory, McGraw-Hill, 1st Edition, 1980. [5] Michael Creutz, Quarks, Gluons and Lattices, Cambridge University Press, 1st Edition, 1983. [6] Michael Creutz, Monte Carlo study of quantized SU(2) gauge theory, Physical Review D 21, 2308, 1980.

39 of 52

Appendix
This appendix contains the obtained numerical results for the Wilson loops and the source code for the program used to perform the numerical calculations.

A.1

Numerical Values for the Wilson Loops

Data set for rectangular Wilson loops.


Beta Wilson 2x1 Wilson 1x2 Wilson 3x2 Wilson 2x3 Wilson 4x3 Wilson 3x4 Wilson 5x4 Wilson 4x5 Wilson 6x5 Wilson 5x6 ------------------------------------------------------------------------------------------------------------------------------------0.2 0.00248112 0.00248789 0.00002013 -0.00002480 -0.00001055 -0.00000602 0.00001773 -0.00005845 -0.00001659 0.00003261 0.4 0.00983771 0.00989323 0.00000403 0.00000630 0.00003528 0.00000606 -0.00001373 -0.00004558 0.00000328 0.00001482 0.6 0.02196027 0.02193322 -0.00004191 -0.00000561 0.00002246 0.00000697 -0.00002270 -0.00001478 -0.00001030 0.00002562 0.8 0.03840416 0.03842199 0.00005471 0.00006136 0.00004481 0.00001283 0.00001251 -0.00000767 -0.00001550 -0.00001089 1.0 0.05918893 0.05916746 0.00024323 0.00020135 -0.00003402 0.00000269 -0.00002432 -0.00003621 0.00005353 -0.00005568 1.2 0.08427193 0.08424700 0.00058841 0.00061187 0.00000505 -0.00002880 0.00002411 0.00000589 0.00001913 0.00000582 1.4 0.11453502 0.11450800 0.00157686 0.00152117 -0.00001311 -0.00002929 0.00001756 -0.00001164 0.00003645 -0.00005047 1.6 0.15111495 0.15114751 0.00360462 0.00363954 0.00002329 0.00000626 0.00001052 -0.00000832 -0.00000802 -0.00002991 1.8 0.19778175 0.19778616 0.00863624 0.00861080 0.00006912 0.00005597 -0.00003794 0.00000614 0.00000112 -0.00001343 1.9 0.22607630 0.22605395 0.01343834 0.01341309 0.00024176 0.00019314 0.00002676 -0.00000299 0.00001631 -0.00000333 2.0 0.25896161 0.25895169 0.02133276 0.02138767 0.00058008 0.00058726 0.00000502 -0.00000490 0.00002247 -0.00002818 2.1 0.29758037 0.29758054 0.03491899 0.03496339 0.00182083 0.00182782 0.00000949 0.00002442 0.00002073 0.00001478 2.2 0.34096438 0.34094286 0.05692842 0.05690644 0.00545425 0.00545578 0.00030482 0.00032831 -0.00001043 -0.00002849 2.3 0.38570766 0.38564882 0.08845148 0.08842424 0.01436145 0.01433055 0.00168224 0.00174458 0.00019403 0.00011701 2.4 0.42516528 0.42517196 0.12384297 0.12389377 0.02955829 0.02957979 0.00605601 0.00601460 0.00107475 0.00104990 2.5 0.45666651 0.45667146 0.15538293 0.15541438 0.04682210 0.04675958 0.01293069 0.01292845 0.00334972 0.00329584 2.6 0.48229854 0.48227693 0.18210013 0.18207601 0.06300817 0.06304123 0.02072554 0.02069183 0.00651730 0.00642334 2.7 0.50463242 0.50462345 0.20634601 0.20637227 0.07900604 0.07907162 0.02921724 0.02926201 0.01052377 0.01051114 2.8 0.52437400 0.52436232 0.22824219 0.22827440 0.09408536 0.09415434 0.03777268 0.03772779 0.01481698 0.01478272

Standard deviations for rectangular Wilson loops.


Beta Wilson 2x1 Wilson 1x2 Wilson 3x2 Wilson 2x3 Wilson 4x3 Wilson 3x4 Wilson 5x4 Wilson 4x5 Wilson 6x5 Wilson 5x6 ------------------------------------------------------------------------------------------------------------------------------------0.2 0.00036011 0.00036766 0.00035509 0.00034088 0.00036202 0.00033441 0.00036597 0.00034376 0.00034283 0.00035012 0.4 0.00039712 0.00036962 0.00035597 0.00035359 0.00031313 0.00035537 0.00033985 0.00035889 0.00037679 0.00034967 0.6 0.00036037 0.00033436 0.00036674 0.00033732 0.00036595 0.00034759 0.00036345 0.00038897 0.00038716 0.00035097 0.8 0.00038471 0.00036135 0.00036631 0.00032845 0.00037804 0.00038294 0.00037184 0.00037026 0.00033967 0.00037898 1.0 0.00039954 0.00039448 0.00035812 0.00035844 0.00038424 0.00034155 0.00035682 0.00032405 0.00036246 0.00033830 1.2 0.00037820 0.00040817 0.00034513 0.00036374 0.00034067 0.00036351 0.00036942 0.00034654 0.00034465 0.00035497 1.4 0.00043031 0.00041307 0.00035492 0.00035769 0.00033537 0.00035404 0.00035307 0.00035981 0.00034127 0.00035094 1.6 0.00041696 0.00042168 0.00036806 0.00037461 0.00034932 0.00037931 0.00038167 0.00036788 0.00035537 0.00038174 1.8 0.00046873 0.00047441 0.00038844 0.00034869 0.00036562 0.00036952 0.00034956 0.00036406 0.00034675 0.00034288 1.9 0.00056767 0.00054892 0.00039609 0.00037614 0.00034220 0.00035741 0.00032997 0.00036049 0.00039676 0.00034103 2.0 0.00052054 0.00053162 0.00039675 0.00044685 0.00038035 0.00033457 0.00029492 0.00038421 0.00036352 0.00034038 2.1 0.00055215 0.00061107 0.00044743 0.00047321 0.00036821 0.00039459 0.00035637 0.00038132 0.00039344 0.00038012 2.2 0.00061814 0.00060871 0.00053632 0.00054036 0.00040624 0.00038198 0.00037296 0.00036394 0.00035754 0.00033386 2.3 0.00056758 0.00058703 0.00064127 0.00060409 0.00044060 0.00046686 0.00038278 0.00035964 0.00032807 0.00034029 2.4 0.00056838 0.00053435 0.00067254 0.00069105 0.00049475 0.00048823 0.00038348 0.00040191 0.00036842 0.00033236 2.5 0.00048142 0.00048125 0.00072703 0.00068534 0.00064693 0.00060324 0.00048353 0.00045929 0.00034524 0.00036523 2.6 0.00050218 0.00053034 0.00073987 0.00073759 0.00063081 0.00058712 0.00051775 0.00045805 0.00041309 0.00041996 2.7 0.00045197 0.00040389 0.00062032 0.00061058 0.00058590 0.00057980 0.00046319 0.00049413 0.00040548 0.00039617 2.8 0.00038553 0.00042719 0.00063512 0.00065918 0.00062567 0.00063862 0.00052910 0.00054970 0.00044496 0.00046040

40 of 52

Data set for square Wilson loops.


Beta Wilson 1x1 Wilson 2x2 Wilson 3x3 Wilson 4x4 Wilson 5x5 Wilson 6x6 --------------------------------------------------------------------------------0.2 0.04988385 0.00000645 0.00006958 -0.00000576 0.00001376 -0.00000852 0.4 0.09940182 0.00010939 -0.00004491 0.00001046 0.00001655 -0.00000530 0.6 0.14810840 0.00049472 0.00004843 0.00002080 -0.00003249 -0.00000195 0.8 0.19593741 0.00149903 0.00005436 -0.00005524 -0.00000213 0.00000513 1.0 0.24316616 0.00344072 0.00001727 -0.00000811 0.00003957 0.00001930 1.2 0.29023868 0.00714675 0.00001723 -0.00000842 0.00002470 0.00002785 1.4 0.33794474 0.01329569 0.00004329 -0.00003046 0.00004568 0.00001976 1.6 0.38755996 0.02350167 0.00023874 -0.00000994 0.00001010 0.00001270 1.8 0.44095345 0.04099483 0.00082335 0.00002394 -0.00000484 -0.00002796 1.9 0.47002065 0.05462539 0.00170725 -0.00000628 0.00002008 0.00000983 2.0 0.50109321 0.07342626 0.00359359 0.00008219 -0.00002874 -0.00005490 2.1 0.53451401 0.10014688 0.00786283 0.00027863 0.00000876 -0.00002639 2.2 0.56927076 0.13652927 0.01739938 0.00131126 0.00006322 -0.00002017 2.3 0.60217590 0.17996568 0.03520637 0.00500653 0.00049490 0.00006674 2.4 0.62997832 0.22262284 0.05931279 0.01319692 0.00250982 0.00038597 2.5 0.65191761 0.25815245 0.08339100 0.02416978 0.00643866 0.00160326 2.6 0.67001005 0.28791859 0.10548127 0.03592334 0.01159599 0.00360116 2.7 0.68554721 0.31366820 0.12558863 0.04764684 0.01749954 0.00620825 2.8 0.69942333 0.33714110 0.14467034 0.05926635 0.02360225 0.00918771 3.0 0.72316685 0.37844545 0.18056703 0.08327347 0.03766689 0.01677325 3.2 0.74303420 0.41423357 0.21350515 0.10698863 0.05276176 0.02573245 3.4 0.76017138 0.44630346 0.24506228 0.13150514 0.06965838 0.03662861 3.6 0.77503146 0.47482829 0.27436947 0.15545428 0.08702581 0.04830300 3.8 0.78809569 0.50044943 0.30154204 0.17856327 0.10468036 0.06097644 4.0 0.79964833 0.52360682 0.32694328 0.20098226 0.12253432 0.07423148 4.2 0.80998789 0.54476527 0.35085569 0.22286461 0.14043205 0.08809417 4.4 0.81931562 0.56415022 0.37334514 0.24391764 0.15828728 0.10227927 4.6 0.82769958 0.58181069 0.39421011 0.26397382 0.17562298 0.11635929 4.8 0.83539570 0.59826162 0.41405158 0.28358793 0.19306037 0.13094903 5.0 0.84237704 0.61335467 0.43260468 0.30211850 0.20988100 0.14529832 5.2 0.84877810 0.62726354 0.44975832 0.31939839 0.22563236 0.15882351 5.4 0.85471779 0.64039853 0.46646313 0.33675284 0.24194438 0.17323627 5.6 0.86017991 0.65256941 0.48201775 0.35307605 0.25746343 0.18731070 5.8 0.86523833 0.66397022 0.49681526 0.36882442 0.27264138 0.20098873 6.0 0.86994497 0.67452750 0.51046870 0.38335460 0.28671418 0.21387561 6.2 0.87433599 0.68455332 0.52372222 0.39777173 0.30092038 0.22701864 6.4 0.87841589 0.69390144 0.53613747 0.41138116 0.31441084 0.23968462 6.6 0.88225713 0.70278222 0.54811812 0.42474568 0.32801298 0.25276890 6.8 0.88587690 0.71118483 0.55957183 0.43755464 0.34100681 0.26524492 7.0 0.88924390 0.71898940 0.57013384 0.44941770 0.35315458 0.27696220 7.2 0.89243999 0.72649792 0.58046735 0.46113345 0.36518768 0.28867608 7.4 0.89546128 0.73364467 0.59038962 0.47247702 0.37698860 0.30017335 7.6 0.89830124 0.74035011 0.59968064 0.48315538 0.38815701 0.31120889 7.8 0.90098400 0.74669660 0.60850760 0.49326652 0.39870813 0.32175264 8.0 0.90354502 0.75278030 0.61703663 0.50326074 0.40942948 0.33254960 8.2 0.90597998 0.75864273 0.62533617 0.51292001 0.41959675 0.34266125 8.4 0.90828116 0.76416059 0.63318130 0.52220685 0.42955812 0.35272071 8.6 0.91046784 0.76940692 0.64061914 0.53089508 0.43881672 0.36210205 8.8 0.91257251 0.77452552 0.64795016 0.53967062 0.44845387 0.37206267 9.0 0.91455525 0.77934944 0.65495473 0.54814493 0.45772954 0.38173699 9.2 0.91647150 0.78398509 0.66161532 0.55600429 0.46625307 0.39035078 9.4 0.91829734 0.78843587 0.66801329 0.56366102 0.47457372 0.39897542 9.6 0.92004241 0.79268634 0.67419565 0.57114137 0.48278467 0.40747184 9.8 0.92171625 0.79680557 0.68020016 0.57843527 0.49090346 0.41609734 10.0 0.92332227 0.80073097 0.68595809 0.58545812 0.49865720 0.42414025

41 of 52

Standard deviations for square Wilson loops.


Beta Wilson 1x1 Wilson 2x2 Wilson 3x3 Wilson 4x4 Wilson 5x5 Wilson 6x6 --------------------------------------------------------------------------------0.2 0.00037000 0.00036528 0.00035081 0.00038144 0.00034772 0.00036310 0.4 0.00033473 0.00036213 0.00035917 0.00035426 0.00038505 0.00035467 0.6 0.00034493 0.00036961 0.00035349 0.00035122 0.00033093 0.00035669 0.8 0.00036661 0.00035688 0.00035039 0.00037254 0.00033037 0.00034613 1.0 0.00032874 0.00035548 0.00034107 0.00037049 0.00037969 0.00032456 1.2 0.00034289 0.00033856 0.00039328 0.00037128 0.00032720 0.00036079 1.4 0.00032163 0.00036447 0.00036593 0.00036397 0.00034315 0.00032219 1.6 0.00037674 0.00038386 0.00036360 0.00034496 0.00032128 0.00035611 1.8 0.00037724 0.00037537 0.00037904 0.00033949 0.00035215 0.00037353 1.9 0.00035838 0.00044817 0.00034578 0.00035627 0.00032900 0.00034354 2.0 0.00035516 0.00045191 0.00035839 0.00035592 0.00033988 0.00034858 2.1 0.00040793 0.00059946 0.00038541 0.00035242 0.00040351 0.00035019 2.2 0.00047712 0.00072516 0.00045009 0.00035520 0.00034436 0.00035390 2.3 0.00039472 0.00073318 0.00057878 0.00041889 0.00035079 0.00035385 2.4 0.00032056 0.00062366 0.00061048 0.00043787 0.00035698 0.00033656 2.5 0.00032913 0.00071445 0.00071280 0.00054622 0.00040899 0.00036242 2.6 0.00026390 0.00061423 0.00060420 0.00044129 0.00048170 0.00038806 2.7 0.00026758 0.00062505 0.00068438 0.00057672 0.00044494 0.00042676 2.8 0.00024311 0.00060694 0.00068755 0.00062856 0.00048980 0.00044473 3.0 0.00022623 0.00055383 0.00073154 0.00067409 0.00061309 0.00046973 3.2 0.00023865 0.00057443 0.00068457 0.00069260 0.00059837 0.00050359 3.4 0.00019285 0.00048426 0.00063788 0.00068404 0.00059960 0.00051587 3.6 0.00016691 0.00047397 0.00064747 0.00066884 0.00068611 0.00060879 3.8 0.00015497 0.00044819 0.00064365 0.00071073 0.00068694 0.00063888 4.0 0.00017137 0.00051439 0.00077163 0.00093744 0.00098111 0.00091674 4.2 0.00015616 0.00044629 0.00069520 0.00085384 0.00082894 0.00081975 4.4 0.00013449 0.00042117 0.00068183 0.00086000 0.00087418 0.00089182 4.6 0.00015329 0.00043849 0.00070150 0.00084194 0.00091247 0.00088044 4.8 0.00010922 0.00035616 0.00057995 0.00081050 0.00088559 0.00080256 5.0 0.00012168 0.00038117 0.00068046 0.00082629 0.00091669 0.00093294 5.2 0.00012033 0.00038997 0.00062994 0.00086615 0.00087301 0.00090594 5.4 0.00011814 0.00036005 0.00061901 0.00076327 0.00093207 0.00106878 5.6 0.00011079 0.00035770 0.00062470 0.00087776 0.00103832 0.00109854 5.8 0.00010945 0.00034067 0.00058858 0.00076934 0.00096395 0.00108075 6.0 0.00010495 0.00034187 0.00060896 0.00082853 0.00090804 0.00099803 6.2 0.00010915 0.00035204 0.00057563 0.00073963 0.00086920 0.00095326 6.4 0.00009840 0.00034441 0.00056774 0.00075697 0.00088929 0.00099530 6.6 0.00009305 0.00029847 0.00052485 0.00069099 0.00085404 0.00096918 6.8 0.00009152 0.00032652 0.00060768 0.00086953 0.00105465 0.00119239 7.0 0.00009839 0.00029282 0.00052181 0.00076808 0.00088849 0.00099885 7.2 0.00009208 0.00030432 0.00057619 0.00080433 0.00107181 0.00117319 7.4 0.00008077 0.00027800 0.00047574 0.00067702 0.00083625 0.00089218 7.6 0.00008302 0.00026098 0.00048520 0.00070585 0.00089186 0.00103061 7.8 0.00009214 0.00026674 0.00049791 0.00071493 0.00092750 0.00099991 8.0 0.00007720 0.00026239 0.00051300 0.00072583 0.00090982 0.00108791 8.2 0.00007464 0.00025268 0.00048645 0.00070084 0.00089736 0.00113140 8.4 0.00007464 0.00025551 0.00050834 0.00074066 0.00091289 0.00111145 8.6 0.00007274 0.00025623 0.00049137 0.00071257 0.00091842 0.00109459 8.8 0.00006897 0.00023010 0.00045545 0.00070836 0.00098169 0.00118615 9.0 0.00006437 0.00024103 0.00045172 0.00069004 0.00091103 0.00110104 9.2 0.00006841 0.00025836 0.00050334 0.00074939 0.00093559 0.00112584 9.4 0.00006542 0.00023039 0.00042695 0.00061797 0.00083110 0.00108432 9.6 0.00007115 0.00023694 0.00044291 0.00063906 0.00087196 0.00106289 9.8 0.00006381 0.00022777 0.00046002 0.00071284 0.00092428 0.00112156 10.0 0.00006533 0.00022124 0.00043276 0.00062630 0.00081274 0.00098527

42 of 52

A.2
#i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e

Source Code
< l a t t i c e . h> <random . h> <u p d a t e . h> <s t a p l e s . h> < s t a t i s t i c s . h> <w i l s o n . h> <c s t d l i b > <c s t d i o > <c s t r i n g >

main.cpp

u s i n g namespace s t d ; Lattice l ; int int int double nth nms lsz beta = = = = 100; 100; 8; 1.0; // // // // Number o f t e r m a l i s a t i o n c y c l e s Number o f measurements Lattice size Value o f b e t a

v o i d f e t c h _ o p t i o n s ( i n t argc , c h a r a r g v ) { f o r ( i n t i = 0 ; i < a r g c ; i ++) { i f ( s t r c m p ( a r g v [ i ] , "n t h " ) == 0 ) { n t h = a t o i ( a r g v [++ i ] ) ; } e l s e i f ( s t r c m p ( a r g v [ i ] , "nms " ) == 0 ) { nms = a t o i ( a r g v [++ i ] ) ; } e l s e i f ( s t r c m p ( a r g v [ i ] , " l s z " ) == 0 ) { l s z = a t o i ( a r g v [++ i ] ) ; } e l s e i f ( s t r c m p ( a r g v [ i ] , "b e t a " ) == 0 ) { b e t a = a t o f ( a r g v [++ i ] ) ; } } p r i n t f ( " S e t t i n g s l o a d e d : n t h=%d , nms=%d , l s z =%d , b e t a =%1.2 f \n " , nth , nms , l s z , b e t a ) ; } i n t main ( i n t argc , c h a r a r g v ) { double p ; / / Handle commandline o p t i o n s f e t c h _ o p t i o n s ( argc , a r g v ) ; / / A l l o c a t e data p = ( double ) c a l l o c ( 1 0 nms , s i z e o f ( double ) ) ; / / I n i t i a l i z e random g e n e r a t o r ranlxd_init () ; / / C r e a t e l a t t i c e o f d i m e n s i o n l s z ^4 and s e t b e t a l = L a t t i c e ( lsz , beta ) ; l . calculate_neighbors ( ) ; l . reset (1 , 0 , 0 , 0) ; / / Perform s t a p l e t e s t staples_test () ; // Thermalisation f o r ( i n t i = 0 ; i < n t h ; i ++) { p r i n t f ( " \ r P e r f o r m i n g t h e r m a l i s a t i o n : %d /% d " , i +1 , n t h ) ; f f l u s h ( stdout ) ; update ( ) ; } p r i n t f ( " \ r P e r f o r m i n g t h e r m a l i s a t i o n : Done \n " ) ; / / Measurements f o r ( i n t i = 0 ; i < nms ; i ++) { p r i n t f ( " \ r P e r f o r m i n g measurements : %d /% d " , i +1 , nms ) ; f f l u s h ( stdout ) ; update ( ) ; p [ i +0 nms ] p [ i +1 nms ] p [ i +2 nms ] p [ i +3 nms ] p [ i +4 nms ] p [ i +5 nms ] p [ i +6 nms ] p [ i +7 nms ]

= = = = = = = =

avr_wilson avr_wilson avr_wilson avr_wilson avr_wilson avr_wilson avr_wilson avr_wilson

(2 (1 (3 (2 (4 (3 (5 (4

,1) ,2) ,2) ,3) ,3) ,4) ,4) ,5)

; ; ; ; ; ; ; ;

43 of 52

p [ i +8 nms ] = a v r _ w i l s o n ( 6 , 5 ) ; p [ i +9 nms ] = a v r _ w i l s o n ( 5 , 6 ) ; } p r i n t f ( " \ r P e r f o r m i n g measurements : Done / / Show s t a t i s t i c s p r i n t f ( " \n " ) ; p r i n t f ( " Wilson 2 x1 : p r i n t f ( " Wilson 1 x2 : p r i n t f ( " Wilson 3 x2 : p r i n t f ( " Wilson 2 x3 : p r i n t f ( " Wilson 4 x3 : p r i n t f ( " Wilson 3 x4 : p r i n t f ( " Wilson 5 x4 : p r i n t f ( " Wilson 4 x5 : p r i n t f ( " Wilson 6 x5 : p r i n t f ( " Wilson 5 x6 : / / Free d a t a free (p) ; return 1; } \n " ) ;

% % % % % % % % % %

1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8

f f f f f f f f f f

% 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n " % 1 . 8 f \n "

, , , , , , , , , ,

a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms , a v e r a g e ( nms ,

p+0 nms ) p+1 nms ) p+2 nms ) p+3 nms ) p+4 nms ) p+5 nms ) p+6 nms ) p+7 nms ) p+8 nms ) p+9 nms )

, , , , , , , , , ,

s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms , s t a n d a r d _ d e v i a t i o n ( nms ,

p+0 nms ) ) p+1 nms ) ) p+2 nms ) ) p+3 nms ) ) p+4 nms ) ) p+5 nms ) ) p+6 nms ) ) p+7 nms ) ) p+8 nms ) ) p+9 nms ) )

; ; ; ; ; ; ; ; ; ;

lattice.cpp
#i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e < l a t t i c e . h> <c a s s e r t > <i o s t r e a m > <c s t d l i b > <c s t r i n g >

Lattice : : Lattice () { length = 0; area = 0 ; volume = 0 ; hypervolume = 0 ; beta = 0 ; } L a t t i c e : : L a t t i c e ( l o n g dim , double b t ) { l e n g t h = dim ; a r e a = dim dim ; volume = dim dim dim ; h y p e r v o l u m e = dim dim dim dim ; beta = bt ; try { element . r e s i z e ( hypervolume ) ; neighbor . r e s i z e ( hypervolume ) ; } c a t c h ( b a d _ a l l o c &) { c e r r << " F a i l e d t o a l l o c a t e " << ( s i z e o f ( s i t e _ t ) h y p e r v o l u m e ) / ( 1 0 2 4 1 0 2 4 ) << " MB o f memory " << e n d l ; exit (1) ; } } Lattice ::~ Lattice ( ) { element . c l e a r ( ) ; neighbor . clear ( ) ; } double L a t t i c e { switch ( d ) { case 0 : return break ; case 1 : return break ; case 2 : return break ; case 3 : return break ; } } : : get ( const long n , const i n t d )

element [ n ] . at ;

e l e m e n t [ n ] . ax ;

e l e m e n t [ n ] . ay ;

e l e m e n t [ n ] . az ;

v o i d L a t t i c e : : s e t ( c o n s t l o n g n , c o n s t i n t d , double v ) { switch ( d ) { case 0 :

44 of 52

memcpy ( e l e m e n t break ; case 1 : memcpy ( e l e m e n t break ; case 2 : memcpy ( e l e m e n t break ; case 3 : memcpy ( e l e m e n t break ; } }

[ n ] . at , v , 3 2 ) ;

[ n ] . ax , v , 3 2 ) ;

[ n ] . ay , v , 3 2 ) ;

[ n ] . az , v , 3 2 ) ;

void L a t t i c e : : calculate_neighbors ( ) { i n t nb = 0 ; for ( i n t id = 0; { neighbor [ id ] . neighbor [ id ] . neighbor [ id ] . neighbor [ id ] . } } l o n g L a t t i c e : : i d _ o f _ n e i g h b o r ( l o n g id , i n t mu , i n t d i s t ) { i f ( d i s t < 0 ) d i s t += l e n g t h ; / / assuming abs ( d i s t ) < l e n g t h w h i l e ( d i s t ) { i d = n e i g h b o r [ i d ] . nb [ mu ] ; } return id ; } l o n g L a t t i c e : : i d _ f r o m _ o f f s e t ( l o n g id , i n t to , i n t xo , i n t yo , i n t zo ) { int t , x , y , z ; t = i d / volume ; i d = i d % volume ; z = id / area ; id = id % area ; y = id / length ; x = ( id % length ) ; x = ( x + xo ) % l e n g t h ; i f ( x < 0) x = x + length ; y = ( y + yo ) % l e n g t h ; i f ( y < 0) y = y + length ; z = ( z + zo ) % l e n g t h ; i f ( z < 0) z = z + length ; t = ( t + to ) % length ; i f ( t < 0) t = t + length ; return id_from_position ( t , x , y , z ) ; } long L a t t i c e : : i d _ f r o m _ p o s i t i o n ( i n t t , i n t x , i n t y , i n t z ) { r e t u r n x + y l e n g t h + z a r e a + t volume ; } v o i d L a t t i c e : : r e s e t ( double t , double x , double y , double z ) { double v [ 4 ] = { t , x , y , z } ; f o r ( i n t i = 0 ; i < h y p e r v o l u m e ; i ++) { memcpy ( e l e m e n t [ i ] . at , v , s i z e o f ( v ) ) memcpy ( e l e m e n t [ i ] . ax , v , s i z e o f ( v ) ) memcpy ( e l e m e n t [ i ] . ay , v , s i z e o f ( v ) ) memcpy ( e l e m e n t [ i ] . az , v , s i z e o f ( v ) ) } } i d < h y p e r v o l u m e ; i d ++) nb [ 0 ] nb [ 1 ] nb [ 2 ] nb [ 3 ] = = = = id_from_offset id_from_offset id_from_offset id_from_offset ( id ( id ( id ( id , , , , 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0) 0) 0) 1) ; ; ; ;

; ; ; ;

su_group.cpp
#i n c l u d e <s u _ g r o u p . h> SuN : : SuN ( ) { value [ 0 ] = 0; value [ 1 ] = 0;

45 of 52

value [ 2 ] = 0; value [ 3 ] = 0; } SuN : : SuN ( double a ) { value [ 0 ] = a [ 0 ] ; value [ 1 ] = a [ 1 ] ; value [ 2 ] = a [ 2 ] ; value [ 3 ] = a [ 3 ] ; } SuN& SuN : : o p e r a t o r =( c o n s t SuN &r h s ) { double temp [ 4 ] ; temp [ 0 ] temp [ 1 ] temp [ 2 ] temp [ 3 ] value value value value [0] [1] [2] [3] = = = = = = = = value value value value temp temp temp temp [0] [0] [0] [0] [0]; [1]; [2]; [3]; rhs rhs rhs rhs . . . . value value value value [0] [1] [2] [3] + + + value value value value [1] [1] [2] [3] rhs rhs rhs rhs . . . . value value value value [1] [0] [0] [0] + + + value value value value [2] [3] [1] [2] rhs rhs rhs rhs . . . . value value value value [2] [2] [3] [1] value value value value [3] [2] [3] [1] rhs rhs rhs rhs . . . . value value value value [3]; [3]; [1]; [2];

return this ; } SuN o p e r a t o r ( c o n s t SuN &l h s , c o n s t SuN &r h s ) { SuN temp ( l h s ) ; temp = r h s ; r e t u r n temp ; } SuN& SuN : : o p e r a t o r +=( c o n s t SuN &r h s ) { v a l u e [ 0 ] += r h s . v a l u e [ 0 ] ; v a l u e [ 1 ] += r h s . v a l u e [ 1 ] ; v a l u e [ 2 ] += r h s . v a l u e [ 2 ] ; v a l u e [ 3 ] += r h s . v a l u e [ 3 ] ; return this ; } SuN o p e r a t o r +( c o n s t SuN &l h s , c o n s t SuN &r h s ) { SuN temp ( l h s ) ; temp += r h s ; r e t u r n temp ; } SuN& SuN : : o p e r a t o r =( c o n s t SuN &r h s ) { v a l u e [ 0 ] = r h s . v a l u e [ 0 ] ; v a l u e [ 1 ] = r h s . v a l u e [ 1 ] ; v a l u e [ 2 ] = r h s . v a l u e [ 2 ] ; v a l u e [ 3 ] = r h s . v a l u e [ 3 ] ; return this ; } SuN o p e r a t o r ( c o n s t SuN &l h s , c o n s t SuN &r h s ) { SuN temp ( l h s ) ; temp = r h s ; r e t u r n temp ; } SuN dagger ( SuN e ) { SuN g ; g. g. g. g. value value value value [0] [1] [2] [3] = e . value [ 0 ] ; = e . v a l u e [ 1 ] ; = e . v a l u e [ 2 ] ; = e . v a l u e [ 3 ] ;

return g ; } double t r a c e ( SuN g ) { r e t u r n 2 g . v a l u e [ 0 ] ; } double d e t e r m i n a n t ( SuN g ) { return g . value [ 0 ] g . value [ 0 ] + g . value [ 1 ] g . value [ 1 ] + g . value [ 2 ] g . value [ 2 ] + g . value [ 3 ] g . value [ 3 ] ; }

46 of 52

staples.cpp
#i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e <g l o b a l . h> <s u _ g r o u p . h> <w i l s o n . h> <c s t d i o > <cmath> <c s t d l i b >

SuN s t a p l e _ f o r w a r d ( l o n g id , i n t mu , i n t nu ) { long a , b ; a = l . i d _ o f _ n e i g h b o r ( id , mu , 1 ) ; b = l . i d _ o f _ n e i g h b o r ( id , nu , 1 ) ; SuN v1 ( l . g e t ( a , nu ) ) ; SuN v2 ( l . g e t ( b , mu ) ) ; SuN v3 ( l . g e t ( id , nu ) ) ; r e t u r n v1 dagger ( v2 ) dagger ( v3 ) ; } SuN s t a p l e _ b a c k w a r d ( l o n g id , i n t mu , i n t nu ) { long a ; i d = l . i d _ o f _ n e i g h b o r ( id , nu , 1) ; a = l . i d _ o f _ n e i g h b o r ( id , mu , 1 ) ; SuN v1 ( l . g e t ( a , nu ) ) ; SuN v2 ( l . g e t ( id , mu ) ) ; SuN v3 ( l . g e t ( id , nu ) ) ; r e t u r n dagger ( v1 ) dagger ( v2 ) v3 ; } SuN s t a p l e s ( l o n g id , i n t mu ) { SuN s t a p l e ; f o r ( i n t nu = 0 ; nu < 4 ; nu++) { i f ( nu == mu ) c o n t i n u e ; s t a p l e += s t a p l e _ f o r w a r d ( id , mu , nu ) ; s t a p l e += s t a p l e _ b a c k w a r d ( id , mu , nu ) ; } return staple ; } void s t a p l e s _ t e s t ( ) { SuN s t a p l e , l n k ; double s = 0 , p = 0 ; f o r ( l o n g i d = 0 ; i d < l . h y p e r v o l u m e ; i d ++) { f o r ( i n t mu = 0 ; mu < 4 ; mu++) { s t a p l e = s t a p l e s ( id , mu ) ; l n k = SuN ( l . g e t ( id , mu ) ) ; s += t r a c e ( s t a p l e l n k ) ; } } s = s / (246 l . hypervolume ) ; p = avr_wilson (1 ,1) ; i f ( abs ( ps ) < 1 . 0 e 10) { p r i n t f ( " P e r f o r m i n g s t a p l e t e s t : PASSED, d i f f e r e n c e : % 1 . 4 e \n " , abs ( ps ) ) ; } else { p r i n t f ( " P e r f o r m i n g s t a p l e t e s t : FAILED , d i f f e r e n c e : % 1 . 4 e \n " , abs ( ps ) ) ; exit (1) ; } }

wilson.cpp
#i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e <w i l s o n . h> <s u _ g r o u p . h> <g l o b a l . h> <p t h r e a d . h>

p t h r e a d _ m u t e x _ t mutex = PTHREAD_MUTEX_INITIALIZER ; double t o t a l _ s u m ; double w i l s o n _ l o o p ( l o n g id , i n t mu , i n t nu , i n t h e i g h t , i n t w i d t h )

47 of 52

{ SuN fw = SuN ( l . g e t ( id , mu ) ) ; SuN bk = SuN ( l . g e t ( id , nu ) ) ; l o n g pos = i d ; f o r ( i n t ndx = 1 ; ndx < h e i g h t ; ndx++) { pos = l . i d _ o f _ n e i g h b o r ( pos , mu , 1 ) ; fw = SuN ( l . g e t ( pos , mu ) ) ; } pos = l . i d _ o f _ n e i g h b o r ( pos , mu , 1 ) ; fw = SuN ( l . g e t ( pos , nu ) ) ; f o r ( i n t ndx = 1 ; ndx < w i d t h ; ndx++) { pos = l . i d _ o f _ n e i g h b o r ( pos , nu , 1 ) ; fw = SuN ( l . g e t ( pos , nu ) ) ; } pos = i d ; f o r ( i n t ndx = 1 ; ndx < w i d t h ; ndx++) { pos = l . i d _ o f _ n e i g h b o r ( pos , nu , 1 ) ; bk = SuN ( l . g e t ( pos , nu ) ) ; } pos = l . i d _ o f _ n e i g h b o r ( pos , nu , 1 ) ; bk = SuN ( l . g e t ( pos , mu ) ) ; f o r ( i n t ndx = 1 ; ndx < h e i g h t ; ndx++) { pos = l . i d _ o f _ n e i g h b o r ( pos , mu , 1 ) ; bk = SuN ( l . g e t ( pos , mu ) ) ; } r e t u r n t r a c e ( fw dagger ( bk ) ) ; } v o i d w i l s o n _ s u b s e t ( v o i d param ) { a r g _ t a r g = ( a r g _ t ) param ; double sum = 0 ; f o r ( l o n g i d = arg >f r o m ; i d < arg >t o ; i d ++) { f o r ( i n t mu = 1 ; mu < 4 ; mu++) { f o r ( i n t nu = 0 ; nu < mu ; nu++) { sum += w i l s o n _ l o o p ( id , mu , nu , arg >h e i g h t , arg >w i d t h ) ; } } } p t h r e a d _ m u t e x _ l o c k (& mutex ) ; t o t a l _ s u m += sum ; p t h r e a d _ m u t e x _ u n l o c k (& mutex ) ; } double a v r _ w i l s o n ( i n t h e i g h t , i n t w i d t h ) { pthread_t thread_a , thread_b ; a r g _ t arg_a , arg_b ; total_sum = 0; # i f d e f THREADS a r g _a . a r g _a . arg_b . a r g _a . a r g _a . from = 0; t o = arg_b . f r o m = l . h y p e r v o l u m e / 2 ; to = l . hypervolume ; h e i g h t = arg_b . h e i g h t = h e i g h t ; w i d t h = arg_b . w i d t h = w i d t h ;

p t h r e a d _ c r e a t e (& t h r e a d _ a , NULL , w i l s o n _ s u b s e t , ( v o i d )&ar g _ a ) ; p t h r e a d _ c r e a t e (& t h r e a d _ b , NULL , w i l s o n _ s u b s e t , ( v o i d )&arg_b ) ; p t h r e a d _ j o i n ( t h r e a d _ a , NULL ) ; p t h r e a d _ j o i n ( t h r e a d _ b , NULL ) ; #e l s e a r g _a . f r o m = 0 ; a r g _a . t o = l . h y p e r v o l u m e ; a r g _a . h e i g h t = h e i g h t ; a r g _a . w i d t h = w i d t h ; w i l s o n _ s u b s e t ( ( v o i d )&a r g _ a ) ; #e n d i f r e t u r n t o t a l _ s u m / ( 2 6 l . h y p e r v o l u m e ) ; / / Two f o r s c a l i n g

48 of 52

update.cpp
#i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e <u p d a t e . h> <g l o b a l . h> <s t a p l e s . h> <s u _ g r o u p . h> <random . h> <cmath> <p t h r e a d . h>

double r a n d x ( double low ) { r e t u r n low + ( 1 low ) r a n l x d ( ) ; } v o i d u p d a t e _ l i n k ( l o n g id , i n t mu ) { SuN s t a p l e ; double a , k , x , sq , t h e t a , p h i ; double w [ 4 ] ; s t a p l e = s t a p l e s ( id , mu ) ; k = sqrt ( determinant ( staple ) ) ; / / Normalize staple . value staple . value staple . value staple . value staple [ 0 ] /= k ; [ 1 ] /= k ; [ 2 ] /= k ; [ 3 ] /= k ;

/ / De ter mi ne new a_mu v e c t o r i . e . w while ( 1 ) { x = r a n d x ( exp ( 2 l . b e t a k ) ) ; a = 1 + log ( x ) / ( l . beta k ) ; sq = s q r t ( 1 a a ) ; i f ( r a n l x d ( ) < sq ) break ; } t h e t a = TWO_PI r a n l x d ( ) ; p h i = PI r a n l x d ( ) ; w[0] w[1] w[2] w[3] = = = = a; sq c o s ( t h e t a ) s i n ( p h i ) ; sq s i n ( t h e t a ) s i n ( p h i ) ; sq c o s ( p h i ) ;

/ / M u l t i p l y group e l e m e n t s t o d e t e r m i n e new l i n k SuN g ( w ) ; g = dagger ( s t a p l e ) ; / / S t o r e new l i n k l . s e t ( id , mu , g . v a l u e ) ; } v o i d u p d a t e _ s u b s e t ( v o i d param ) { a r g _ t a r g = ( a r g _ t ) param ; f o r ( l o n g i d = arg >f r o m ; i d < arg >t o ; i d ++) { f o r ( i n t mu = 0 ; mu < 4 ; mu++) { u p d a t e _ l i n k ( id , mu ) ; } } } void update ( ) { pthread_t thread_a , thread_b ; a r g _ t arg_a , arg_b ; # i f d e f THREADS a r g _a . f r o m = 0 ; a r g _a . t o = arg_b . f r o m = l . h y p e r v o l u m e / 2 ; arg_b . t o = l . h y p e r v o l u m e ; p t h r e a d _ c r e a t e (& t h r e a d _ a , NULL , u p d a t e _ s u b s e t , ( v o i d )&ar g _ a ) ; p t h r e a d _ c r e a t e (& t h r e a d _ b , NULL , u p d a t e _ s u b s e t , ( v o i d )&arg_b ) ; p t h r e a d _ j o i n ( t h r e a d _ a , NULL ) ; p t h r e a d _ j o i n ( t h r e a d _ b , NULL ) ; #e l s e a r g _a . f r o m = 0 ; a r g _a . t o = l . h y p e r v o l u m e ;

49 of 52

u p d a t e _ s u b s e t ( ( v o i d )&a r g _ a ) ; #e n d i f }

statistics.cpp
#i n c l u d e < s t a t i s t i c s . h> #i n c l u d e <cmath> double a v e r a g e ( i n t n , double v ) { double sum = 0 ; f o r ( i n t i = 0 ; i < n ; i ++) { sum += v [ i ] ; } r e t u r n sum / n ; } double s t a n d a r d _ d e v i a t i o n ( i n t n , double v ) { double w = 0 ; double wsq = 0 ; f o r ( i n t i = 0 ; i < n ; i ++) { w += v [ i ] ; wsq += v [ i ] v [ i ] ; } r e t u r n s q r t ( wsq / n ( w/ n ) (w/ n ) ) ; }

random.cpp
#i n c l u d e <g s l / g s l _ r n g . h> #i n c l u d e < s t d l i b . h> s t a t i c gsl_rng r ; void r a n l x d _ e x i t ( ) { gsl_rng_free ( r ) ; } void r a n l x d _ i n i t ( ) { gsl_rng_env_setup ( ) ; r = gsl_rng_alloc ( gsl_rng_ranlxd1 ) ; / / gsl_rng_taus / gsl_rng_ranlxd1 g s l _ r n g _ s e t ( r , 3 2 ) ; / / s e t seed v a l u e = 32 atexit ( ranlxd_exit ) ; } double r a n l x d ( ) { return gsl_rng_uniform_pos ( r ) ; }

global.h
#i f n d e f GLOBAL_H #d e f i n e GLOBAL_H #i n c l u d e < l a t t i c e . h> extern Lattice l ; #d e f i n e PI 3.14159265358979323846264338327 #d e f i n e TWO_PI 6 . 2 8 3 1 8 5 3 0 7 1 7 9 5 8 6 4 7 6 9 2 5 2 8 6 7 6 6 5 6 typedef s t r u c t { long from ; long to ; int height ; i n t width ; } arg_t ; #e n d i f

lattice.h 50 of 52

#i f n d e f LATTICE_H #d e f i n e LATTICE_H #i n c l u d e <v e c t o r > u s i n g namespace s t d ; typedef s t r u c t { double a t [ 4 ] ; double ax [ 4 ] ; double ay [ 4 ] ; double az [ 4 ] ; } site_t ; typedef s t r u c t { i n t nb [ 4 ] ; } neighbor_t ; class Lattice { public : long l e n g t h ; long area ; l o n g volume ; long hypervolume ; double b e t a ; v e c t o r <s i t e _ t > e l e m e n t ; v e c t o r <n e i g h b o r _ t > n e i g h b o r ; Lattice () ; L a t t i c e ( long , double ) ; ~L a t t i c e ( ) ; double g e t ( c o n s t long , c o n s t i n t ) ; v o i d s e t ( c o n s t long , c o n s t i n t , double ) ; v o i d r e s e t ( double , double , double , double ) ; void calculate_neighbors ( ) ; l o n g i d _ o f _ n e i g h b o r ( long , i n t , i n t ) ; l o n g i d _ f r o m _ o f f s e t ( l o n g id , i n t to , i n t xo , i n t yo , i n t zo ) ; long i d _ f r o m _ p o s i t i o n ( i n t t , i n t x , i n t y , i n t z ) ; }; #e n d i f

// // // //

a_mu a_mu a_mu a_mu

in in in in

the the the the

td i r e c t i o n xd i r e c t i o n yd i r e c t i o n zd i r e c t i o n

su_group.h
#i f n d e f SU_GROUP_H #d e f i n e SU_GROUP_H u s i n g namespace s t d ; c l a s s SuN { public : double v a l u e [ 4 ] ; SuN ( ) ; SuN ( double ) ; SuN& o p e r a t o r =( c o n s t SuN&) ; SuN& o p e r a t o r +=( c o n s t SuN&) ; SuN& o p e r a t o r =( c o n s t SuN&) ; f r i e n d SuN o p e r a t o r ( c o n s t SuN& , c o n s t SuN&) ; f r i e n d SuN o p e r a t o r +( c o n s t SuN& , c o n s t SuN&) ; f r i e n d SuN o p e r a t o r ( c o n s t SuN& , c o n s t SuN&) ; }; SuN dagger ( SuN ) ; double t r a c e ( SuN ) ; double d e t e r m i n a n t ( SuN g ) ; #e n d i f

staples.h
#i f n d e f STAPLES_H #d e f i n e STAPLES_H #i n c l u d e <s u _ g r o u p . h> SuN s t a p l e s ( l o n g id , i n t mu ) ; void s t a p l e s _ t e s t ( ) ; #e n d i f

51 of 52

wilson.h
#i f n d e f WILSON_H #d e f i n e WILSON_H double w i l s o n _ l o o p ( long , i n t , i n t , i n t , i n t ) ; double a v r _ w i l s o n ( i n t , i n t ) ; #e n d i f

update.h
#i f n d e f UPDATE_H #d e f i n e UPDATE_H v o i d u p d a t e _ l i n k ( long , i n t ) ; void update ( ) ; #e n d i f

statistics.h
#i f n d e f STATISTICS_H #d e f i n e STATISTICS_H double a v e r a g e ( i n t n , double ) ; double s t a n d a r d _ d e v i a t i o n ( i n t , double ) ; #e n d i f

random.h
#i f n d e f RANDOM_H #d e f i n e RANDOM_H void r a n l x d _ i n i t ( ) ; double r a n l x d ( ) ; #e n d i f

Makele
CC = g++ LDFLAGS = lm l g s l l g s l c b l a s l p t h r e a d CCFLAGS = O3 c I i n c l u d e mfpmath=s s e msse msse2 DTHREADS SOURCES = $ ( w i l d c a r d . cpp ) OBJECTS = $ (SOURCES : . cpp =. o ) PROGRAM = main a l l : $ (SOURCES) $ (PROGRAM) $ (PROGRAM) : $ ( OBJECTS ) $ ( CC ) $ ( OBJECTS ) $ ( LDFLAGS ) o $@ . cpp . o : $ ( CC ) $ ( CCFLAGS ) $< o $@ clean : rm r f . o $ (PROGRAM)

52 of 52

Você também pode gostar