14 namespace Baryon2PtContractions
18 LatticeComplex
sigma2pt(
const LatticePropagator& quark_propagator_1,
19 const LatticePropagator& quark_propagator_2,
20 const SpinMatrix&
T,
const SpinMatrix&
sp)
24 LatticePropagator
di_quark = quarkContract13(quark_propagator_1 *
sp,
25 sp * quark_propagator_2);
26 return LatticeComplex(trace(
T * traceColor(quark_propagator_2 * traceSpin(
di_quark)))
27 + trace(
T * traceColor(quark_propagator_2 *
di_quark)));
34 LatticeComplex
xi2pt(
const LatticePropagator& quark_propagator_1,
35 const LatticePropagator& quark_propagator_2,
36 const SpinMatrix&
T,
const SpinMatrix&
sp)
40 LatticePropagator
di_quark = quarkContract13(quark_propagator_1 *
sp,
41 sp * quark_propagator_2);
42 return LatticeComplex(trace(
T * traceColor(quark_propagator_1 * traceSpin(
di_quark)))
43 + trace(
T * traceColor(quark_propagator_1 *
di_quark)));
50 LatticeComplex
lambda2pt(
const LatticePropagator& quark_propagator_1,
51 const LatticePropagator& quark_propagator_2,
52 const SpinMatrix&
T,
const SpinMatrix&
sp)
57 LatticePropagator
di_quark = quarkContract13(quark_propagator_2 *
sp,
58 sp * quark_propagator_2);
60 LatticeComplex b_prop = trace(
T * traceColor(quark_propagator_1 * traceSpin(
di_quark)))
61 + trace(
T * traceColor(quark_propagator_1 *
di_quark));
63 di_quark = quarkContract13(quark_propagator_2 *
sp,
64 sp * quark_propagator_1);
65 b_prop += trace(
T * traceColor(quark_propagator_2 *
di_quark));
75 const LatticePropagator& quark_propagator_2,
76 const SpinMatrix&
T,
const SpinMatrix&
sp)
80 LatticePropagator
di_quark = quarkContract13(quark_propagator_2 *
sp,
81 sp * quark_propagator_2);
82 return LatticeComplex(trace(
T * traceColor(quark_propagator_1 * traceSpin(
di_quark))));
89 LatticeComplex
sigmast2pt(
const LatticePropagator& quark_propagator_1,
90 const LatticePropagator& quark_propagator_2,
91 const SpinMatrix&
T,
const SpinMatrix&
sp)
95 LatticePropagator
di_quark = quarkContract13(quark_propagator_1 *
sp,
96 sp * quark_propagator_2);
97 LatticeComplex b_prop = trace(
T * traceColor(quark_propagator_2 * traceSpin(
di_quark)))
98 + trace(
T * traceColor(quark_propagator_2 *
di_quark));
100 di_quark = quarkContract13(quark_propagator_2 *
sp,
101 sp * quark_propagator_1);
102 b_prop += trace(
T * traceColor(quark_propagator_2 *
di_quark));
104 di_quark = quarkContract13(quark_propagator_2 *
sp,
105 sp * quark_propagator_2);
106 b_prop += trace(
T * traceColor(quark_propagator_1 *
di_quark));
108 b_prop += trace(
T * traceColor(quark_propagator_1 * traceSpin(
di_quark)));
116 LatticeComplex
sigmast2pt(
const LatticePropagator& quark_propagator_1,
117 const LatticePropagator& quark_propagator_2,
118 const SpinMatrix&
T,
const SpinMatrix& spSRC,
119 const SpinMatrix& spSNK)
123 LatticePropagator
di_quark = quarkContract13(quark_propagator_1 * spSRC,
124 spSNK * quark_propagator_2);
125 LatticeComplex b_prop = trace(
T * traceColor(quark_propagator_2 * traceSpin(
di_quark)))
126 + trace(
T * traceColor(quark_propagator_2 *
di_quark));
128 di_quark = quarkContract13(quark_propagator_2 * spSRC,
129 spSNK * quark_propagator_1);
130 b_prop += trace(
T * traceColor(quark_propagator_2 *
di_quark));
132 di_quark = quarkContract13(quark_propagator_2 * spSRC,
133 spSNK * quark_propagator_2);
134 b_prop += trace(
T * traceColor(quark_propagator_1 *
di_quark));
136 b_prop += trace(
T * traceColor(quark_propagator_1 * traceSpin(
di_quark)));
170 void barhqlq(
const LatticePropagator& propagator_1,
171 const LatticePropagator& propagator_2,
179 if ( Ns != 4 || Nc != 3 )
182 multi3d<DComplex> bardisp1;
183 multi3d<DComplex> bardisp2;
186 barhqlq(propagator_1, propagator_2, phases, bardisp1);
195 LatticePropagator
q1_tmp = - (Gamma(7) * propagator_1 * Gamma(7));
196 LatticePropagator
q2_tmp = - (Gamma(7) * propagator_2 * Gamma(7));
202 int num_baryons = bardisp1.size3();
203 int num_mom = bardisp1.size2();
204 int length = bardisp1.size1();
207 XMLArrayWriter xml_bar(xml,num_baryons);
208 push(xml_bar, xml_group);
210 for(
int baryons = 0; baryons < num_baryons; ++baryons)
213 write(xml_bar,
"baryon_num", baryons);
216 XMLArrayWriter xml_sink_mom(xml_bar,num_mom);
217 push(xml_sink_mom,
"momenta");
219 for(
int sink_mom_num = 0; sink_mom_num < num_mom; ++sink_mom_num)
222 write(xml_sink_mom,
"sink_mom_num", sink_mom_num) ;
223 write(xml_sink_mom,
"sink_mom", phases.
numToMom(sink_mom_num)) ;
225 multi1d<Complex> barprop(length);
228 for(
int t = 0;
t < length; ++
t)
230 int t_eff = (
t -
t0 + length) % length;
232 if (
bc_spec < 0 && (t_eff+
t0) >= length)
233 barprop[t_eff] = -bardisp1[baryons][sink_mom_num][
t];
235 barprop[t_eff] = bardisp1[baryons][sink_mom_num][
t];
241 for(
int t = 0;
t < length; ++
t)
243 int t_eff = (length -
t +
t0) % length;
247 barprop[t_eff] -= bardisp2[baryons][sink_mom_num][
t];
248 barprop[t_eff] *= 0.5;
252 barprop[t_eff] += bardisp2[baryons][sink_mom_num][
t];
253 barprop[t_eff] *= 0.5;
258 write(xml_sink_mom,
"barprop", barprop);
341 void barhqlq(
const LatticePropagator& quark_propagator_1,
342 const LatticePropagator& quark_propagator_2,
344 multi3d<DComplex>& barprop)
351 if ( Ns != 4 || Nc != 3 )
355 const int num_baryons = 17;
356 int num_mom = phases.
numMom();
357 barprop.resize(num_baryons,num_mom,length);
376 LatticeComplex b_prop;
379 for(
int baryons = 0; baryons < num_baryons; ++baryons)
582 multi2d<DComplex> hsum;
583 hsum = phases.
sft(b_prop);
585 for(
int sink_mom_num=0; sink_mom_num < num_mom; ++sink_mom_num)
586 for(
int t = 0;
t < length; ++
t)
589 barprop[baryons][sink_mom_num][
t] = hsum[sink_mom_num][
t];
Heavy-light baryon 2-pt functions.
Baryon spin and projector matrices.
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.
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.
LatticeComplex lambdaNaive2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Lambda 2-pt.
void barhqlq(const LatticePropagator &propagator_1, const LatticePropagator &propagator_2, const SftMom &phases, int t0, int bc_spec, bool time_rev, XMLWriter &xml, const std::string &xml_group)
Heavy-light baryon 2-pt functions.
LatticeComplex lambda2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Lambda 2-pt.
LatticeComplex sigma2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Sigma 2-pt.
LatticeComplex xi2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Cascade 2-pt.
LatticeComplex sigmast2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Delta 2-pt.
SpinMatrix Cg4m()
C gamma_4 gamma_- = Cg4m.
SpinMatrix Tmixed()
T = (1 + \Sigma_3)*(1 + gamma_4) / 2 = (1 + Gamma(8) - i G(3) - i G(11)) / 2.
SpinMatrix Tunpol()
T = (1 + gamma_4) / 2 = (1 + Gamma(8)) / 2.
SpinMatrix Cg5NRnegPar()
C g_5 NR = (1/2)*C gamma_5 * ( 1 - g_4 )
SpinMatrix Cgm()
C gamma_- = Cgm = (C gamma_-)^T.
SpinMatrix TmixedNegPar()
T = (1 - \Sigma_3)*(1 - gamma_4) / 2 = (1 - Gamma(8) + i G(3) - i G(11)) / 2.
SpinMatrix CgmNR()
C gamma_- NR = CgmNR = C gamma_- (1/2)(1 + gamma_4)
SpinMatrix Cg5()
C g_5 = C gamma_5 = Gamma(5)
SpinMatrix Cg5NR()
C g_5 NR = (1/2)*C gamma_5 * ( 1 + g_4 )
SpinMatrix Cg5g4()
C gamma_5 gamma_4 = - Gamma(13)
LatticePropagator di_quark
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)
push(xml_out,"Condensates")
LinOpSysSolverMGProtoClover::T T