53 using namespace StagPhases;
57 LatticeStaggeredPropagator& quark_prop_A,
58 LatticeStaggeredPropagator& quark_prop_B,
65 QDPIO::cerr <<
"The no of dimensions should be 4 for now. It is: "
76 QDPIO::cerr <<
"pions_s: j_decay must be 3 for just now. It is " <<
j_decay << std::endl;
81 const multi1d<int>& latt_size = Layout::lattSize();
85 LatticeComplex latt_corr_fn;
97 latt_corr_fn = trace(adj(quark_prop_A)*quark_prop_B);
100 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
101 tag_names[pion_index] =
"gamma5_CROSS_gamma5" ;
105 if( pion_index != no_pions ) {
106 QDPIO::cerr <<
"Panic! Panic! Something has gone horribly wrong" << std::endl;
120 LatticeStaggeredPropagator& quark_prop_A,
121 LatticeStaggeredPropagator& quark_prop_B,
123 const SftMom& phases, XMLWriter& xml)
129 QDPIO::cerr <<
"The no of dimensions should be 4 for now. It is: "
140 QDPIO::cerr <<
"pions_s: j_decay must be 3 for just now. It is " <<
j_decay << std::endl;
145 const multi1d<int>& latt_size = Layout::lattSize();
148 LatticeComplex latt_corr_fn;
160 latt_corr_fn = trace(adj(quark_prop_A)*quark_prop_B);
162 multi2d<DComplex> hsum;
163 hsum = phases.
sft(latt_corr_fn);
165 XMLArrayWriter xml_sink_mom(xml,phases.
numMom());
167 push(xml_sink_mom,
"gamma5_CROSS_gamma5_mom");
169 for (
int sink_mom_num=0; sink_mom_num < phases.
numMom(); ++sink_mom_num)
172 write(xml_sink_mom,
"sink_mom_num", sink_mom_num);
173 write(xml_sink_mom,
"sink_mom", phases.
numToMom(sink_mom_num));
175 int tt_length = latt_size[
Nd-1] ;
176 multi1d<DComplex> mesprop(tt_length);
177 for (
int t=0;
t < tt_length; ++
t)
179 int t_eff = (
t -
t0 + tt_length) % tt_length;
180 mesprop[t_eff] = hsum[sink_mom_num][
t];
183 write(xml_sink_mom,
"mesprop", mesprop);
Fourier transform phase factor support.
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.
Function object used for constructing the time-slice set.
int operator()(const multi1d< int > &coordinate) const
void compute(LatticeStaggeredPropagator &quark_prop_A, LatticeStaggeredPropagator &quark_prop_B, int j_decay)
void compute_and_dump(LatticeStaggeredPropagator &quark_prop_A, LatticeStaggeredPropagator &quark_prop_B, int j_decay, int, const SftMom &phases, XMLWriter &xml)
Function object used for constructing the time-slice set.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
Asqtad Staggered-Dirac operator.
push(xml_out,"Condensates")