45 void curcor3(
const multi1d<LatticeColorMatrix>&
u,
46 const LatticePropagator& quark_prop_1,
47 const LatticePropagator& quark_prop_2,
56 if ( no_vec_cur < 2 || no_vec_cur > 4 )
62 write(xml,
"num_vec_cur", no_vec_cur);
65 int length = phases.numSubsets();
68 LatticePropagator tmp_prop1;
69 LatticePropagator tmp_prop2;
78 LatticePropagator anti_quark_prop = Gamma(
G5) * quark_prop_2 * Gamma(
G5);
82 multi2d<Real> vector_current(no_vec_cur*(
Nd-1), length);
88 for(
int k = 0;
k <
Nd; ++
k)
96 tmp_prop2 =
u[
k] * shift(quark_prop_1,
FORWARD,
k) * Gamma(
n);
97 chi_sq = - real(trace(adj(anti_quark_prop) * tmp_prop2));
99 tmp_prop1 = Gamma(
n) * tmp_prop2;
100 psi_sq = real(trace(adj(anti_quark_prop) * tmp_prop1));
102 tmp_prop2 =
u[
k] * shift(anti_quark_prop,
FORWARD,
k) * Gamma(
n);
103 chi_sq += real(trace(adj(tmp_prop2) * quark_prop_1));
105 tmp_prop1 = Gamma(
n) * tmp_prop2;
106 psi_sq += real(trace(adj(tmp_prop1) * quark_prop_1));
116 hsum = phases.sft(psi_sq);
118 push(xml_sink_mom,
"momenta");
120 for (
int sink_mom_num=0; sink_mom_num < phases.numMom(); ++sink_mom_num)
122 push(xml_sink_mom,
"elem");
123 write(xml_sink_mom,
"sink_mom_num", sink_mom_num);
124 write(xml_sink_mom,
"sink_mom", phases.numToMom(sink_mom_num));
126 for(
int t = 0;
t < length; ++
t)
128 int t_eff = (
t -
t0 + length) % length;
129 vector_current[kv][t_eff] = dummy1 * Real(hsum[
t]);
133 hsum = sumMulti(chi_sq, phases.getSet());
135 for(
int t = 0;
t < length; ++
t)
137 int t_eff = (
t -
t0 + length) % length;
138 vector_current[kcv][t_eff] = dummy1 * Real(hsum[
t]);
147 if ( no_vec_cur >= 3 )
152 for(
int k = 0;
k <
Nd; ++
k)
160 psi_sq = real(trace(adj(anti_quark_prop) * Gamma(n1) * quark_prop_1 * Gamma(
n)));
166 hsum = sumMulti(psi_sq, phases.getSet());
168 for(
int t = 0;
t < length; ++
t)
170 int t_eff = (
t -
t0 + length) % length;
171 vector_current[kv][t_eff] = dummy1 * Real(hsum[
t]);
179 if ( no_vec_cur >= 4 )
183 for(
int k = 0;
k <
Nd; ++
k)
190 psi_sq = real(trace(adj(anti_quark_prop) * Gamma(
n) * quark_prop_1 * Gamma(
n)));
196 hsum = sumMulti(psi_sq, phases.getSet());
198 for(
int t = 0;
t < length; ++
t)
200 int t_eff = (
t -
t0 + length) % length;
201 vector_current[kv][t_eff] = dummy1 * Real(hsum[
t]);
209 XMLArrayWriter xml_cur(xml,vector_current.size2());
210 push(xml_cur,
"Vector_currents");
212 for (
int current_value=0; current_value < vector_current.size2(); ++current_value)
216 write(xml_cur,
"current_value", current_value);
217 write(xml_cur,
"vector_current", vector_current[current_value]);
230 multi2d<Real> axial_current(2, length);
236 psi_sq = real(trace(adj(anti_quark_prop) * Gamma(
n) * quark_prop_1 * Gamma(
G5)));
239 chi_sq = real(trace(adj(anti_quark_prop) * Gamma(
n) *
244 Gamma(
G5)) * quark_prop_1));
248 Real dummy1 = Real(-1) / Real(2);
251 hsum = sumMulti(psi_sq, phases.getSet());
253 for(
int t = 0;
t < length; ++
t)
255 int t_eff = (
t -
t0 + length) % length;
256 axial_current[1][t_eff] = - Real(hsum[
t]);
260 hsum = sumMulti(chi_sq, phases.getSet());
262 for(
int t = 0;
t < length; ++
t)
264 int t_eff = (
t -
t0 + length) % length;
265 axial_current[0][t_eff] = dummy1 * Real(hsum[
t]);
270 XMLArrayWriter xml_cur(xml,axial_current.size2());
271 push(xml_cur,
"Axial_currents");
273 for (
int current_value=0; current_value < axial_current.size2(); ++current_value)
277 write(xml_cur,
"current_value", current_value);
278 write(xml_cur,
"axial_current", axial_current[current_value]);
Primary include file for CHROMA library code.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void curcor3(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &quark_prop_1, const LatticePropagator &quark_prop_2, const SftMom &phases, int t0, int no_vec_cur, XMLWriter &xml, const std::string &xml_group)
Construct current correlators.
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")
Fourier transform phase factor support.