30 const multi1d<LatticeColorMatrix>&
u,
40 int half_length = length/2 + 1;
42 LatticeColorMatrix
tmp_1;
43 LatticeColorMatrix
tmp_2;
44 LatticeColorMatrix
tmp_3;
45 LatticeComplex cplaq_tmp;
47 multi1d<DComplex> cplaq(length);
48 multi1d<Double> glue0(half_length);
49 multi1d<Double> glue1(half_length);
50 multi1d<Double> glue2(half_length);
51 multi1d<Double> op0(length);
52 multi3d<Double> op1(length, 3, 2);
53 multi2d<Double> op2(length, 3);
56 multi1d< multi1d<DComplex> >
plaq(3);
67 for(
int i=0;
i < 3; ++
i)
69 plaq[
i].resize(length);
110 cplaq = sumMulti(cplaq_tmp, phases.
getSet());
116 for(
t = 0;
t < ( length); ++
t )
118 op0[
t] += real(cplaq[
t]);
119 op1[0][0][
t] += imag(cplaq[
t]);
120 op1[1][1][
t] += imag(cplaq[
t]);
121 op2[0][
t] += real(cplaq[
t]);
122 op2[1][
t] -= real(cplaq[
t]);
127 for(
t = 0;
t < ( length); ++
t )
129 op0[
t] += real(cplaq[
t]);
130 op1[0][2][
t] += imag(cplaq[
t]);
131 op1[1][0][
t] += imag(cplaq[
t]);
132 op2[0][
t] -= real(cplaq[
t]);
133 op2[2][
t] -= real(cplaq[
t]);
138 for(
t = 0;
t < ( length); ++
t )
140 op0[
t] += real(cplaq[
t]);
141 op1[0][1][
t] += imag(cplaq[
t]);
142 op1[1][2][
t] += imag(cplaq[
t]);
143 op2[1][
t] += real(cplaq[
t]);
144 op2[2][
t] += real(cplaq[
t]);
152 for(
t = 0;
t < ( length); ++
t )
154 plaq[plane-1][
t] += cplaq[
t];
171 for(
t = 0;
t < length; ++
t)
175 for(
t0 = 0;
t0 < length; ++
t0)
176 for(
t = 0;
t < half_length; ++
t)
178 t1 = (
t +
t0) % length;
179 glue0[
t] += op0[
t0] * op0[t1];
181 for(
nu = 0;
nu <= ( 2); ++
nu )
183 glue1[
t] += op1[0][
nu][
t0] * op1[0][
nu][t1];
184 glue1[
t] += op1[1][
nu][
t0] * op1[1][
nu][t1];
185 glue2[
t] += op2[
nu][
t0] * op2[
nu][t1];
190 vac0 /=
Double(QDP::Layout::vol());
192 for(
t = 0;
t < ( half_length); ++
t )
200 push(xml_out, xml_group);
202 push(xml_out,
"Glueball_0pp");
204 write(xml_out,
"bl_level", bl_level);
205 write(xml_out,
"vac0", vac0);
206 write(xml_out,
"glue0", glue0);
209 push(xml_out,
"Glueball_1pm");
211 write(xml_out,
"bl_level", bl_level);
212 write(xml_out,
"glue1", glue1);
215 push(xml_out,
"Glueball_2pp");
217 write(xml_out,
"bl_level", bl_level);
218 write(xml_out,
"glue2", glue2);
221 push(xml_out,
"Glueball_plaq");
223 write(xml_out,
"bl_level", bl_level);
224 push(xml_out,
"Planes");
225 for(
int i=0;
i <
plaq.size(); ++
i)
227 push(xml_out,
"elem");
228 write(xml_out,
"plane",
i);
Primary include file for CHROMA library code.
Fourier transform phase factor support.
int numSubsets() const
Number of subsets - length in decay direction.
int getDir() const
Decay direction.
const Set & getSet() const
The set to be used in sumMulti.
Construct 0++, 2++ and 1+- glueball correlation functions from fuzzy links.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
LatticeColorMatrix shift2(const LatticeColorMatrix &s1, int isign, int dir, int level)
A simple not-fancy power of 2 shift.
void gluecor(XMLWriter &xml_out, const std::string &xml_group, const multi1d< LatticeColorMatrix > &u, const SftMom &phases, int bl_level)
Construct 0++, 2++ and 1+- glueball correlation functions from fuzzy links.
Asqtad Staggered-Dirac operator.
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
FloatingPoint< double > Double