45 const LatticePropagator& q1,
46 const LatticePropagator& q2,
47 const LatticePropagator& q3,
54 QDPIO::cerr<<
" code only works for Nc=3 and Ns=4\n";
60 QDPIO::cout<<
"Starting the qqq code\n";
65 int num_mom = phases.
numMom();
67 multi2d<LatticeFermion>
f1(Ns,Nc) ;
78 LatticePropagator c5q = Gamma(5)*q1 ;
83 multi2d<LatticeFermion>
f2(Ns,Nc) ;
84 multi2d<LatticeFermion>
f3(Ns,Nc) ;
91 multi2d<DComplex> foo(num_mom,length) ;
92 for(
int s4(0);s4<Ns;s4++)
100 for(
int s(0);
s<Ns;
s++)
101 cc += colorContract(peekSpin(
f1[i1.s][i1.c],
s ),
102 peekSpin(
f2[i2.s][i2.c],
s ),
103 peekSpin(
f3[i3.s][i3.c],s4));
105 foo = phases.
sft(cc);
106 for(
int sink_mom_num(0); sink_mom_num < num_mom; sink_mom_num++)
107 for(
int t = 0;
t < length; ++
t){
110 int t_eff = (
t -
t0 + length) % length;
111 qqq[sink_mom_num][t_eff](i1,i2,i3,s4) =
112 (
bc_spec < 0 && (t_eff+
t0) >= length) ? -foo[sink_mom_num][
t] :
113 foo[sink_mom_num][
t] ;
119 QDPIO::cout<<
"Finished the qqq code\n";
127 const LatticePropagator& q1,
128 const LatticePropagator& q2,
129 const LatticePropagator& q3,
136 QDPIO::cerr<<
" code only works for Nc=3 and Ns=4\n";
142 QDPIO::cout<<
"Starting the qqq code\n";
147 int num_mom = phases.
numMom();
149 multi2d<LatticeFermion>
f1(Ns,Nc) ;
157 multi2d<LatticeFermion>
f2(Ns,Nc) ;
158 multi2d<LatticeFermion>
f3(Ns,Nc) ;
165 multi2d<DComplex> foo(num_mom,length) ;
166 for(
int s4(0);s4<Ns;s4++)
174 for(
int s(0);
s<Ns;
s++)
175 cc += colorContract(peekSpin(
f1[i1.s][i1.c],
s ),
176 peekSpin(
f2[i2.s][i2.c],
s ),
177 peekSpin(
f3[i3.s][i3.c],s4));
179 foo = phases.
sft(cc);
180 for(
int sink_mom_num(0); sink_mom_num < num_mom; sink_mom_num++)
181 for(
int t = 0;
t < length; ++
t){
184 int t_eff = (
t -
t0 + length) % length;
185 qqq[sink_mom_num][t_eff](i1,i2,i3,s4) =
186 (
bc_spec < 0 && (t_eff+
t0) >= length) ? -foo[sink_mom_num][
t] :
187 foo[sink_mom_num][
t] ;
193 QDPIO::cout<<
"Finished the qqq code\n";
201 multi2d<ThreeQuarks>& qqq,
207 XMLBufferWriter record_xml;
208 push(record_xml,
"qqq_desc");
210 write(record_xml,
"type", type);
211 write(record_xml,
"sink", sink);
214 multi1d<DComplex> data(phases.
numSubsets()*qqq[
p][0].handle().size());
217 for(
int j(0);
j<qqq[
p][
t].Size();
j++)
218 data[
k++] = qqq[
p][
t][
j] ;
220 write(to,record_xml,data);
Baryon spin and projector matrices.
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.
multi2d< DComplex > sft(const LatticeComplex &cf) const
Do a sumMulti(cf*phases,getSet())
int numMom() const
Number of momenta.
void PropToFerm(const LatticePropagatorF &b, LatticeFermionF &a, int color_index, int spin_index)
Extract a LatticeFermion from a LatticePropagator.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void compute_qqq(multi2d< ThreeQuarks > &qqq, const LatticePropagator &q1, const LatticePropagator &q2, const LatticePropagator &q3, const SftMom &phases, int t0, int bc_spec)
Baryon-Baryon 2-pt functions (C\gamma_5 diquark)
SpinMatrix Cgmu(int k)
C g_\mu = \gamma_4 \gamma_2 \gamma_\mu.
Asqtad Staggered-Dirac operator.
push(xml_out,"Condensates")
void write_qqq(QDPFileWriter &to, multi2d< ThreeQuarks > &qqq, const SftMom &phases, std::string type, std::string sink)
multi1d< LatticeFermion > s(Ncb)
const T1 const T2 const T3 & f3
constructs 3 quark propagators contracted at the sink
Fourier transform phase factor support.