33 void Qll(
const multi1d<LatticeColorMatrix>&
u,
34 const LatticePropagator& quark_prop1,
35 const LatticePropagator& quark_prop2,
36 const multi1d<int>& src_coord,
43 if ( Ns != 4 || Nc != 3 ){
44 QDPIO::cerr<<
"Qll code only works for Nc=3 and Ns=4\n";
49 int num_mom = phases.
numMom();
51 LatticeColorMatrix Qprop;
55 multi1d<DComplex> barLamQ;
56 multi1d<DComplex> barSigQ;
58 LatticeComplex LamQ_prop, SigQx_prop, SigQy_prop, SigQz_prop;
65 di_quark = quarkContract13(quark_prop1 * Gamma(5), Gamma(5) * quark_prop2);
67 LamQ_prop = traceColor(Qprop * traceSpin(
di_quark));
73 di_quark = quarkContract13(quark_prop1 * Gamma(11), Gamma(11) * quark_prop2);
75 SigQx_prop = traceColor(Qprop * traceSpin(
di_quark));
78 di_quark = quarkContract13(quark_prop1 * Gamma(8), Gamma(8) * quark_prop2);
80 SigQy_prop = traceColor(Qprop * traceSpin(
di_quark));
83 di_quark = quarkContract13(quark_prop1 * Gamma(14), Gamma(14) * quark_prop2);
85 SigQz_prop = traceColor(Qprop * traceSpin(
di_quark));
89 multi2d<DComplex> hsumLamQ,hsumSigQx,hsumSigQy,hsumSigQz;
90 hsumLamQ = phases.
sft(LamQ_prop);
91 hsumSigQx = phases.
sft(SigQx_prop);
92 hsumSigQy = phases.
sft(SigQy_prop);
93 hsumSigQz = phases.
sft(SigQz_prop);
95 multi2d<DComplex> LQprop(num_mom,length) ;
96 multi2d<DComplex> SQxprop(num_mom,length) ;
97 multi2d<DComplex> SQyprop(num_mom,length) ;
98 multi2d<DComplex> SQzprop(num_mom,length) ;
101 for(
int sink_mom_num=0; sink_mom_num < num_mom; ++sink_mom_num)
102 for(
int t = 0;
t < length; ++
t)
104 int t_eff = (
t - src_coord[
Nd-1] + length) % length;
105 LQprop[sink_mom_num][t_eff] = hsumLamQ[sink_mom_num][
t];
106 SQxprop[sink_mom_num][t_eff] = hsumSigQx[sink_mom_num][
t];
107 SQyprop[sink_mom_num][t_eff] = hsumSigQy[sink_mom_num][
t];
108 SQzprop[sink_mom_num][t_eff] = hsumSigQz[sink_mom_num][
t];
113 push(xml, xml_group);
114 write(xml,
"LambdaQ", LQprop[0]);
115 write(xml,
"SigmaQx", SQxprop[0]);
116 write(xml,
"SigmaQy", SQyprop[0]);
117 write(xml,
"SigmaQz", SQzprop[0]);
123 void Qll(
const multi1d<LatticeColorMatrix>&
u,
124 const LatticePropagator& quark_propagator,
125 const multi1d<int>& src_coord,
129 Qll(
u,quark_propagator,quark_propagator,src_coord,phases,xml,xml_group) ;
150 const multi1d<LatticeColorMatrix>&
u,
151 const multi1d<int>& src_coord,
int length,
160 ColorMatrix
one = 1.0 ;
162 pokeSite(Qprop,
one,src_coord);
164 LatticeColorMatrix U_t_minus_one ;
167 for(
int t(src_coord[
Nd-1]+1);
t<length;
t++){
168 Qprop[slice[
t]] = shift(Qprop,
BACKWARD,
Nd-1)*U_t_minus_one ;
172 for(
int t(1);
t<length;
t++){
173 int t_eff = (
t - src_coord[
Nd-1] + length) % length;
174 Qprop[slice[t_eff]] = shift(Qprop,
BACKWARD,
Nd-1)*U_t_minus_one ;
178 for(
int t(1);
t<length;
t++){
179 int t_eff = (
t - src_coord[
Nd-1] + length) % length;
181 Qprop[slice[t_eff]] = -shift(Qprop,
BACKWARD,
Nd-1)*U_t_minus_one ;
183 Qprop[slice[t_eff]] = shift(Qprop,
BACKWARD,
Nd-1)*U_t_minus_one ;
188 std::cout<<
"Norm of fwd prop = "<<norm2(Qprop)<<std::endl;
208 const multi1d<LatticeColorMatrix>&
u,
209 const multi1d<int>& src_coord,
int length,
225 ColorMatrix
one = 1.0 ;
227 pokeSite(Qprop,
one,src_coord);
229 LatticeColorMatrix U_t_plus_one ;
232 for(
int t(src_coord[
Nd-1]-2);
t>=0;
t--){
234 Qprop[slice[
t]] = U_t_plus_one*shift(Qprop,
FORWARD,
Nd-1);
238 for(
int t(1);
t<length;
t++){
239 int t_eff = (src_coord[
Nd-1] -
t - length) % length;
240 Qprop[slice[t_eff]] = U_t_plus_one*shift(Qprop,
FORWARD,
Nd-1);
245 for(
int t(1);
t<length;
t++){
246 int t_eff = length + (src_coord[
Nd-1] -
t - length) % length;
247 if (t_eff==(length-1))
248 Qprop[slice[t_eff]] = -U_t_plus_one*shift(Qprop,
FORWARD,
Nd-1);
251 Qprop[slice[t_eff]] = U_t_plus_one*shift(Qprop,
FORWARD,
Nd-1);
257 std::cout<<
"Norm of bwd prop = "<<norm2(Qprop)<<std::endl;
Heavy Baryon (Qll) 2-pt function : Orginos and Savage.
Primary include file for CHROMA library code.
Fourier transform phase factor support.
int numSubsets() const
Number of subsets - length in decay direction.
multi2d< DComplex > sft(const LatticeComplex &cf) const
Do a sumMulti(cf*phases,getSet())
int numMom() const
Number of momenta.
Function object used for constructing the time-slice set.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void HeavyQuarkProp(LatticeColorMatrix &Qprop, const multi1d< LatticeColorMatrix > &u, const multi1d< int > &src_coord, int length, int bc)
Heavy Quark Propagator.
void Qll(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &quark_prop1, const LatticePropagator &quark_prop2, const multi1d< int > &src_coord, const SftMom &phases, XMLWriter &xml, const std::string &xml_group)
Lambdaq and SigmaQ 2-pt functions.
void HeavyQuarkPropBack(LatticeColorMatrix &Qprop, const multi1d< LatticeColorMatrix > &u, const multi1d< int > &src_coord, int length, int bc)
Backwards Heavy Quark Propagator.
LatticePropagator di_quark
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
void transpose(multi2d< LatticeColorVector > &dist_rep, const multi2d< LatticeColorVector > &prop_rep)
Take transpose of a matrix in (explicit) spin space.
push(xml_out,"Condensates")
Fourier transform phase factor support.