13 static void print_disp(XMLWriter& xml_hyb,
const LatticeComplex& corr_fn,
18 multi2d<DComplex> hsum;
19 hsum = phases.
sft(corr_fn);
22 XMLArrayWriter xml_sink_mom(xml_hyb,phases.
numMom());
23 push(xml_sink_mom,
"momenta");
25 for (
int sink_mom_num=0; sink_mom_num < phases.
numMom(); ++sink_mom_num)
28 write(xml_sink_mom,
"sink_mom_num", sink_mom_num);
29 write(xml_sink_mom,
"sink_mom", phases.
numToMom(sink_mom_num));
31 multi1d<Complex> mesprop(length);
32 for (
int t=0;
t < length; ++
t)
34 int t_eff = (
t -
t0 + length) % length;
35 mesprop[t_eff] = real(hsum[sink_mom_num][
t]);
38 write(xml_sink_mom,
"mesprop", mesprop);
73 void hybmeson(
const multi1d<LatticeColorMatrix>& f,
74 const multi1d<LatticeColorMatrix>& u_smr,
75 const LatticePropagator& quark_prop_1,
76 const LatticePropagator& quark_prop_2,
85 XMLArrayWriter xml_hyb(xml,15);
86 push(xml_hyb, xml_group);
100 multi1d<LatticeColorMatrix> f_source(
Nd*(
Nd-1)/2);
101 for(
int m = 0;
m <
Nd*(
Nd-1)/2; ++
m)
107 LatticePropagator anti_quark_prop = Gamma(
G5) * quark_prop_2 * Gamma(
G5);
110 multi1d<int> kp1(
Nd);
111 multi2d<int> n_munu(
Nd,
Nd);
112 for(
int k = 0;
k <
Nd; ++
k)
118 if (
n ==
Nd )
n = 0;
127 for(
int m=0;
m <
Nd-1; ++
m)
128 for(
int n=
m+1;
n <
Nd; ++
n)
139 write(xml_hyb,
"kv", kv);
141 LatticePropagator q1_prop = 0;
142 LatticePropagator q2_prop = 0;
143 for(
int k = 0;
k <
Nd; ++
k)
149 int m = n_munu[
n][
j];
153 q1_prop += f[
m] * (Gamma(jm) * quark_prop_1);
154 q2_prop += (anti_quark_prop * Gamma(jm)) * f_source[
m];
158 q1_prop -= f[
m] * (Gamma(jm) * quark_prop_1);
159 q2_prop -= (anti_quark_prop * Gamma(jm)) * f_source[
m];
171 for(
int k = 0;
k <
Nd; ++
k)
177 write(xml_hyb,
"kv", kv);
181 int m = n_munu[
n][
j];
184 f[
m] * (Gamma(
G5) * quark_prop_1 * Gamma(
G5)));
194 write(xml_hyb,
"kv", kv);
196 LatticePropagator q1_prop = 0;
197 LatticePropagator q2_prop = 0;
198 for(
int k = 0;
k <
Nd; ++
k)
209 q1_prop += f[
m] * (Gamma(jm) * quark_prop_1);
210 q2_prop += (anti_quark_prop * Gamma(jm)) * f_source[
m];
214 q1_prop -= f[
m] * (Gamma(jm) * quark_prop_1);
215 q2_prop -= (anti_quark_prop * Gamma(jm)) * f_source[
m];
230 write(xml_hyb,
"kv", kv);
232 LatticePropagator q1_prop = 0;
233 LatticePropagator q2_prop = 0;
235 for(
int k = 0;
k <
Nd; ++
k)
244 q1_prop += f[
m] * (Gamma(jm) * quark_prop_1);
245 q2_prop += (anti_quark_prop * Gamma(jm)) * f_source[
m];
249 q1_prop -= f[
m] * (Gamma(jm) * quark_prop_1);
250 q2_prop -= (anti_quark_prop * Gamma(jm)) * f_source[
m];
263 for(
int k = 0;
k <
Nd; ++
k)
269 write(xml_hyb,
"kv", kv);
271 LatticePropagator q1_prop = 0;
272 LatticePropagator q2_prop = 0;
274 for(
int j = 0;
j <
Nd; ++
j)
278 int m = n_munu[
k][
j];
282 q1_prop += f[
m] * (Gamma(jm) * quark_prop_1);
283 q2_prop += (anti_quark_prop * Gamma(jm)) * f_source[
m];
287 q1_prop -= f[
m] * (Gamma(jm) * quark_prop_1);
288 q2_prop -= (anti_quark_prop * Gamma(jm)) * f_source[
m];
301 for(
int k = 0;
k <
Nd; ++
k)
307 write(xml_hyb,
"kv", kv);
313 f[
m] * (Gamma(jm) * quark_prop_1 * Gamma(jm)));
341 for(
int k = 0;
k <
Nd; ++
k)
347 write(xml_hyb,
"kv", kv);
349 LatticePropagator q1_prop = 0;
350 LatticePropagator q2_prop = 0;
352 LatticePropagator tmp_prop1;
353 LatticePropagator tmp_prop2;
355 for(
int j = 0;
j <
Nd; ++
j)
363 int m = n_munu[
k][
j];
365 LatticePropagator tmp_prop1 = Gamma(jm) * quark_prop_1;
373 q2_prop += (anti_quark_prop * Gamma(jm)) * f_source[
m];
377 q2_prop -= (anti_quark_prop * Gamma(jm)) * f_source[
m];
396 tmp_prop2 = u_smr[
k] * shift(tmp_prop1,
FORWARD,
k)
397 - shift(adj(u_smr[
k]) * tmp_prop1,
BACKWARD,
k);
398 q1_prop += u_smr[
j] * shift(tmp_prop2,
FORWARD,
j);
403 tmp_prop2 = u_smr[
j] * shift(tmp_prop1,
FORWARD,
j)
404 - shift(adj(u_smr[
j]) * tmp_prop1,
BACKWARD,
j);
405 q1_prop -= u_smr[
k] * shift(tmp_prop2,
FORWARD,
k);
410 tmp_prop2 = u_smr[
k] * shift(tmp_prop1,
FORWARD,
k)
411 - shift(adj(u_smr[
k]) * tmp_prop1,
BACKWARD,
k);
412 q1_prop -= shift(adj(u_smr[
j]) * tmp_prop2,
BACKWARD,
j);
417 tmp_prop2 = u_smr[
j] * shift(tmp_prop1,
FORWARD,
j)
418 - shift(adj(u_smr[
j]) * tmp_prop1,
BACKWARD,
j);
419 q1_prop += shift(adj(u_smr[
k]) * tmp_prop2,
BACKWARD,
k);
Primary include file for CHROMA library code.
Fourier transform phase factor support.
int numSubsets() const
Number of subsets - length in decay direction.
multi1d< int > numToMom(int mom_num) const
Convert momenta id to actual array of momenta.
int getDir() const
Decay direction.
multi2d< DComplex > sft(const LatticeComplex &cf) const
Do a sumMulti(cf*phases,getSet())
int numMom() const
Number of momenta.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void hybmeson(const multi1d< LatticeColorMatrix > &f, const multi1d< LatticeColorMatrix > &u_smr, const LatticePropagator &quark_prop_1, const LatticePropagator &quark_prop_2, const SftMom &phases, multi1d< int > t_source, XMLWriter &xml, const std::string &xml_group)
Hybrid meson 2-pt functions.
Hybrid meson 2-pt functions.
QDPSubTypeTrait< typename BinaryReturn< C1, C2, FnLocalInnerProduct >::Type_t >::Type_t localInnerProduct(const QDPSubType< T1, C1 > &l, const QDPType< T2, C2 > &r)
Asqtad Staggered-Dirac operator.
static void print_disp(XMLWriter &xml_hyb, const LatticeComplex &corr_fn, const SftMom &phases, int t0)
Print the correlator to xml.
push(xml_out,"Condensates")
Fourier transform phase factor support.