To run chroma use the command
chroma_install_dir/chroma -i hadspec.ini.xml -o hadspec.out.xml
where, chroma_install_dir
, denotes the directory where you put
the chroma executable. The input file is specified
using the "-i" option. A lot of output in the form of XML is generated
by the program. By default, the XML output goes into a file named
XMLDAT
. Alternatively can specify a file name (as above) using the
"-o" option.
Chroma also outputs a lot of information to the screen (standard output). You can redirect the standard output to a file using
chroma_install_dir/chroma -i hadspec.ini.xml -o hadspec.out.xml > log_hadspec
You have now generated the following files:
log_hadspec
- the standard output.hadspec.out.xml
- the xml output.hadspec.dat.xml
- the correlator measurements (the file specified in the HADRON_SPECTRUM
inline measurement).Let us look at the output first, an example of which is given here: log_hadspec
.
There are several things to note:
The output
file hadspec.out.xml
contains
a lot of (often repeated) information that can be difficult to
digest. However, it is useful as a log of the calculation and
does contain some important information. Don't spend much time looking
into this at the moment, we comment on it's contents in section reference 1
below.
There is no information about the HADRON_SPECTRUM
measurement
in hadspec.out.xml
as
this is all in the
file hadspec.dat.xml
. This
file contains the correlator data we are interested in, however, it
also contains a lot of other output. To make it easier to read
the correlator data into an analysis routine, for example to calculate
effective masses, we will strip the data from the
file hadspec.dat.xml
and put it into a file with a simple
text format. How to find the correlator data
within hadspec.dat.xml
is detailed below in section reference 2.
hadspec.dat.xml
using ADATThe ADAT software package contains many programs for stripping data
from the various xml or binary files that chroma produces. It also
contains programs for analysing the data. You will need the
program strip_hadspec
. Many files will be produced by the
program so it is best to change to a new directory. Run the program with the command
strip_hadspec_install_dir/strip_hadspec hadspec.dat.xml
where strip_hadspec_install_dir
is the directory
where you have the strip_hadspec
executable.
The program strips the correlator data into separate files for each hadron for every momentum and smearing combination used (here we just have one smearing combination). You will have generated the files shown in this list. The file names have a straightforward format:
For example
pion_px1_py0_pz0.D5455.P_1.P_1.PP
pxX_pyY_pzZ
, where (X,Y,Z) is the momentum. If we
had chosen not to average over equivalent momenta there would be
one file for each permutation of (X,Y,Z). For zero momentum _[momenta]
is omitted from the file name.Mass
parameter, which can be used as input
instead of Kappa
in the PROPAGATOR
inline measurement is defined in chroma as
Mass=0.5*(1/Kappa - 1/Kappa_c)
,
where Kappa_c=1/8
is the kappa value corresponding to zero
quark mass in the free field case. We chose Kappa=0.11
which gives
Mass=0.54545
. The value is rounded and
the 0.
is removed to give the MassString=5455
. Note that in the interacting case this parameter can be negative.
P
. There are often several different operators used for
the same particle. For the pion one can
use q &Gamma q where
&Gamma = &gamma5 (Channel = 1) or &Gamma =
&gamma4&gamma5 (Channel = 2). The channels for the baryons are more complicated and are discussed in section Looking into the chroma code.
Now let us look into the file: pion.D5455.P_1.P_1.PP
,
1 8 1 4 1 0 0.695079547680507 0 1 0.0371189174074971 0 2 0.00801121179028996 0 3 0.00306581884433399 0 4 0.00206155294108612 0 5 0.00306324860321183 0 6 0.0080019051238196 0 7 0.0371176435437519 0
The first line states, in order, the number of configurations (1), the temporal extent of the lattice (8), that the correlator is complex (1) (0 if it is real) and the spatial extent of the lattice (4). The last number is no longer used.
The zero momentum pion correlator is then listed as a function of the timeslice.
At the moment you only have one data file (with results from one configuration). Later, in the section
Mini spectrum calculation, you will use strip_hadspec
with multiple files and calculate the effective mass of a particle.
Now that you have successfully run chroma and stripped the output into a manageable format it is instructive to play around with the input file. Here are a few things to try.
<t_srce>0 0 0
5<t_srce>
. You will find that when you strip the output
file that the correlators look similar to the results for those
generated with the source at timeslice 0 (i.e. the largest number,
approximately 0.695, is at timeslice 0). This is because chroma
automatically shifts the correlator (after it has been calculated) so
that the source timeslice is always labelled by 0.
Kappa=0.12
. The number of
iterations for the inversions should increase, along with the time
taken. Decrease the residual: this will also increase the number of
iterations. Decrease the maximum number of iterations so that it is
lower than the number required for convergence, for example
<MaxCG>5<MaxCG>
. The program still runs through
successfully but you now get a non-convergence warning (!!!).
avg_equiv_mom
to false, and so on.MAKE_SOURCE
or WILSON
etc, chroma will give you a list of possible
values before exiting. You can go through each key in turn
mistyping it (but nothing else before it). Here are a few examples
MAKE_SOURCE
- this is the name of an inline
measurement. If you mistype this you will get a list of all the
possible inline measurements. You can see the list here: list of inline measurementsPOINT_SOURCE
- mistyping this will give you all the source types. PROPAGATOR
- mistyping this will just give you the same list as for
MAKE_SOURCE
as it is also an inline measurement key. WILSON
to get all the fermion actions and
CG_INVERTER
to get all the inverters.You can now go on to the change the XML file in a significant way in the next part of the tutorial: Modifying the input file.
hadspec.out.xml
hadspec.out.xml
we note the following:
<Observables>
tags, repeated 4 times in the output file.<QuarkProp4>
tag.PROPAGATOR
, after the
propagator has been calculated. Look for <Prop_correlator>
, to
find the pion correlator as a function of the timeslice. Secondly, in
SINK_SMEAR
, where the pion correlator is calculated before smearing
(look for <Forward_prop_correlator>
) and after smearing (look
for <SinkSmearedProp_correlator>
). Since we have used point
smearing the propagator, and hence the pion correlator, is unchanged by smearing.
hadspec.dat.xml
To find the correlator data
within hadspec.dat.xml
search for the tag <Point_Point_Wilson_Mesons>
. The
first few lines of XML that follow this tag are shown below.
<Point_Point_Wilson_Mesons> <elem> <gamma_value>0</gamma_value> <momenta> <elem> <sink_mom_num>0</sink_mom_num> <sink_mom>0 0 0</sink_mom> <mesprop> <elem> <re>0.559868925531191</re> <im>0</im> </elem> <elem> <re>-0.0119817844101817</re> <im>0</im> </elem> <elem> <re>-0.00286980391956604</re> <im>0</im> </elem> <elem> <re>-0.00197637835844944</re> <im>0</im> </elem> <elem> <re>-0.00187173219273973</re> <im>0</im> </elem> <elem> <re>-0.00197547156858491</re> <im>0</im> </elem> <elem> <re>-0.00286186982066283</re> <im>0</im> </elem> <elem> <re>-0.0119718946280045</re> <im>0</im> </elem> </mesprop> </elem>
The correlators are listed in terms of the &Gamma combinations used
in the meson operator. There are 16 combinations, which are labelled by the tag
<gamma_value>
. What value corresponds to what
&Gamma combination is given
here, chroma_gamma_matrices
(n&Gamma(dec) in the table).
The correlator is given for each momentum combination, labelled with the tag <sink_mom_num>
and explicitly specified within the tag <sink_mom>
.
The timeslice is not specified but the correlator is always displayed starting from the source timeslice.
After the mesons, the currents are listed, look for
the <Point_Point_Meson_Currents>
tag, and then
follow the baryons
(<Point_Point_Wilson_Baryons>
). To find out what
the values labelled by the <baryon_num>
tag
correspond to you will need to look in the chroma code itself, see
section Looking in the chroma code.