Simulation of a SU(2) gauge theory
This is a simulation of a SU(2) model, which is essentially QCD (gluons only) with two colors,
written in Java. The degrees of freedom of the system are
the link variables each of which connect
two neighboring grid points of a n-dimensional lattice (grid).
The link variables U are 2x2 unitary matrices
which can be written as U = exp(i f),
where f is a hermitean 2x2 matrix.
The energy of the system is can be obtained by computing the so-called plaquette values.
A plaquette value is
calculated by taking four neighboring sites on the lattice surrounding
an elementary (smallest) square on the lattice. For instance, if you
have a site (grid point) with coordinates (i,j), the four points
(i,j), (i+1,j), (i+1,j+1), (i,j+1) form a square.
The connections between
two neighbouring points of the square are given by the corresponding
link variables. The value of the
plaquette is defined as
the product of the four link variables encircling the square and then taking the trace of the resulting matrix.
The total energy of the system is then given
by summing over the values of all plaquettes of the lattice
and taking the value of this sum.
The link variables are coupled to a heat bath with a temperature T = 1 / beta.
This applet then updates the link variables on the lattice in order
to simulate the behavior of the system for a given temperature.
You can adjust the size of the lattice by changing the values in the upper left
corner of the window. The default values define a two-dimensional lattice.
However, by changing
the number of points for the 3rd or 4th dimension from 1 to some other value you
can simulate a 3 or 4 dimensional system. The display of the
plaquette values on the right
always shows one plane within your lattice.
Below the information on the system size
the current value of the
plaquette is shown, averaged over all plaquettes on the lattice
and averaged over the updates of the lattice. Also, its variation (errorbar) is shown.
For low temperatures the plaquette approaches 1,
whereas at high temperature the system behaves randomly
and the plaquette averages out to 0.
- You can change the temperature of the system by changing the value of beta which is
the inverse of the temperature as noted above.
In the upper right panel
the values of the plaquettes
of the lattice are shown.
In the case of a 3 or 4 dimensional system the value of plaquette is averaged
over the additional dimensions at the given point in the plane.
Right now the display is a little boring. The brightness of the color indicates the value of the plaquette (the larger the value
the brighter the color)
- There are two segments in the lower right corner. The upper panel shows a plot of
the value of the plaquette averaged over the lattice (blue)
and the same value averaged over all updates of the lattice (red) as they change with
successive updates of the link variables on the lattice.
- The lower panel
shows the potential between static color charges on the lattice
at some distance.
The horizontal axis represents the
distance between the two plaquettes, the vertical axis
is the value of the potential (which is always 0 at distance 0, which is the leftmost
point in the plot). The red dots show the current values of the correlation averaged
over the lattice, the blue points (including black error bars)
are the corresponding values averaged over all updates of the lattice
(axis labels are still missing everywhere, I hope I'll get to fixing this, soon. Right now, the display is rescaled with
every new drawing).
You can change the value of the temperature in steps automatically.
To do that you specify an amount of change of beta (inverse temperature) in the panel on the left side of the window,
and in addition the number of updates of the lattice
after which the value of the
temperature is changed. The applet will start with the continuous change
after you have clicked on the GO button. You can stop by clicking on the button
again. The value of
the average plaquette of the system with changing temperature is then plotted
in the lower left panel of the window. In case the increment is positive
green points mark the value and the evolution is plotted from left to right,
for a decrement the color is orange and the plotting is done from right to left.
The reason for this procedure is that sometimes when the state of the system changes drastically
with a change of parameters
(phase transition) this change occurs differently if you
go from lower to higher values of the parameters or the other way round. Here, for instance,
you can choose a positive increment of beta which will generate a green curve
and then you can change the sign of the increment and the average is spin is plotted from
right to left in orange. You can directly see whether both curves turn out to be on top of each
other or not (a so-called hysteresis or memory effect).
You can also go back and forth with the increments changing the
dimension of the system in-between and so on.
The curves don't get erased during the plotting. In order to clear the panel click
on the erase plot button.
- In case you need a break, click on the pause
button, which will freeze the applet until you
click on it again.
(For experts: with the Cool button you can start cooling the system
by setting beta to infinity. Sometimes one can see relatively stable
remnants on the lattice - classical solutions, so-called instantons
as dark spots on the lattice.
Since the plaquette value goes to 1 quite fast during cooling, at every
update of the display the range of colors for the plaquettes is matched
to the range of values of the plaquette for this iteration.
Usually the range of colors represent the possible plaquette values
-1 to 1.)
This applet still needs improvement. I'll try to fix the deficiencies with time. Enjoy!