26 if (mom.
magic != 20301)
28 QDPIO::cerr <<
"read(FormFac_momenta_t): magic number invalid" << std::endl;
93 const multi1d<LatticeColorMatrix>&
u,
94 const LatticePropagator& quark_propagator,
95 const LatticePropagator& seq_quark_prop,
108 LatticePropagator anti_quark_prop = Gamma(
G5) * seq_quark_prop * Gamma(
G5);
118 for(
int gamma_value = 0; gamma_value <
Nd*
Nd; ++gamma_value)
127 bool compute_nonlocal;
134 compute_nonlocal =
true;
139 compute_nonlocal =
true;
144 compute_nonlocal =
true;
149 compute_nonlocal =
true;
153 compute_nonlocal =
false;
157 LatticeComplex corr_local_fn =
158 trace(adj(anti_quark_prop) * Gamma(gamma_value) * quark_propagator * Gamma(gamma_insertion));
160 multi2d<DComplex> hsum, hsum_nonlocal;
161 hsum = phases.
sft(corr_local_fn);
168 LatticeComplex corr_nonlocal_fn;
169 if(compute_nonlocal){
171 trace(adj(
u[
mu] * shift(anti_quark_prop,
FORWARD,
mu)) *
172 (quark_propagator + Gamma(gamma_value) * quark_propagator) * Gamma(gamma_insertion));
173 LatticePropagator tmp_prop1 =
u[
mu] *
175 corr_nonlocal_fn -= trace(adj(anti_quark_prop) *
176 (tmp_prop1 - Gamma(gamma_value) * tmp_prop1) * Gamma(gamma_insertion));
178 hsum_nonlocal = phases.
sft(corr_nonlocal_fn);
182 form.
formFac[gamma_value].gamma_value = gamma_value;
186 for(
int inser_mom_num=0; inser_mom_num<phases.
numMom(); ++inser_mom_num)
188 form.
formFac[gamma_value].momenta[inser_mom_num].inser_mom = phases.
numToMom(inser_mom_num);
190 multi1d<ComplexF> local_cur3ptfn(length);
191 multi1d<ComplexF> nonlocal_cur3ptfn;
192 if (compute_nonlocal)
193 nonlocal_cur3ptfn.resize(length);
195 for (
int t=0;
t < length; ++
t)
197 int t_eff = (
t -
t0 + length) % length;
199 local_cur3ptfn[t_eff] = Complex(hsum[inser_mom_num][
t]);
200 if (compute_nonlocal)
201 nonlocal_cur3ptfn[t_eff] = 0.5 * Complex(hsum_nonlocal[inser_mom_num][
t]);
205 form.
formFac[gamma_value].momenta[inser_mom_num].local_current = local_cur3ptfn;
206 form.
formFac[gamma_value].momenta[inser_mom_num].nonlocal_current = nonlocal_cur3ptfn;
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 read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void FormFac(FormFac_insertions_t &form, const multi1d< LatticeColorMatrix > &u, const LatticePropagator &quark_propagator, const LatticePropagator &seq_quark_prop, int gamma_insertion, const SftMom &phases, int t0)
Compute contractions for current insertion 3-point functions.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
Fourier transform phase factor support.