112 template<
typename T,
typename P,
typename Q,
template<
class,
class,
class>
class C>
115 const LatticePropagator& q_src,
124 push(xml_out,
"DWF_QuarkProp4");
131 multi1d<LatticePropagator> prop5d(
S_f.size()) ;
132 LatticePropagator q_mp ;
134 multi1d<LatticeFermion>
psi(
S_f.size()) ;
137 for(
int color_source = 0; color_source < Nc; ++color_source)
139 for(
int spin_source = 0; spin_source < Ns; ++spin_source)
141 QDPIO::cout<<
"nef_quarkProp:: doing color : "<< color_source;
142 QDPIO::cout<<
" and spin : "<< spin_source<<std::endl ;
145 LatticeFermion
tmp,tt ;
155 Real nrm = sqrt(norm2(
tmp));
156 if (toFloat(nrm) != 0.0)
162 QDPIO::cout<<
"Normalization Factor: "<< fact<<std::endl ;
165 QDPIO::cout <<
"N5=" <<
N5 << std::endl;
167 multi1d<LatticeFermion>
chi(
N5) ;
171 tt = chiralProjectPlus(
tmp) ;
173 tt = chiralProjectMinus(
tmp) ;
184 push(xml_out,
"Qprop");
185 write(xml_out,
"color_source", color_source);
186 write(xml_out,
"spin_source", spin_source);
194 fact = Real(1) / fact;
195 for(
int i = 0;
i <
N5; ++
i)
204 for(
int s(0);
s<
S_f.size();
s++)
208 tmp = chiralProjectMinus(
psi[0]) + chiralProjectPlus(
psi[
N5-1]) ;
215 tmp = chiralProjectPlus(
psi[
N5/2 - 1]) + chiralProjectMinus(
psi[
N5/2]) ;
222 LatticeComplex cfield ;
229 multi1d<DComplex> corr ;
233 corr = sumMulti(cfield, trick.
getSet());
236 multi1d<Real> mesprop(length);
237 for(
int t(0);
t<length;
t++){
238 int t_eff( (
t - t_src + length) % length ) ;
239 mesprop[t_eff] = real(corr[
t]) ;
242 push(xml_out,
"time_direction");
265 multi1d<Double>
tmp(length);
266 tmp = sumMulti(localNorm2(q_mp), trick.
getSet());
267 for(
int t(0);
t<length;
t++){
268 int t_eff( (
t - t_src + length) % length ) ;
269 mesprop[t_eff] =
tmp[
t] ;
272 push(xml_out,
"DWF_MidPoint_Pseudo");
273 write(xml_out,
"mesprop", mesprop);
277 tmp = sumMulti(localNorm2(q_sol), trick.
getSet());
278 for(
int t(0);
t<length;
t++){
279 int t_eff( (
t - t_src + length) % length ) ;
280 mesprop[t_eff] =
tmp[
t] ;
282 push(xml_out,
"DWF_Psuedo_Pseudo");
283 write(xml_out,
"mesprop", mesprop);
313 const LatticePropagator& q_src,
316 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >&
S_f,
318 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> > >
state,
322 nef_quarkProp_a<LatticeFermion,multi1d<LatticeColorMatrix>,multi1d<LatticeColorMatrix>,
350 const LatticePropagator& q_src,
353 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >&
S_f,
355 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> > >
state,
359 nef_quarkProp_a<LatticeFermion,multi1d<LatticeColorMatrix>,multi1d<LatticeColorMatrix>,
Primary include file for CHROMA library code.
Base class for unpreconditioned domain-wall-like fermion actions.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Fourier transform phase factor support.
int numSubsets() const
Number of subsets - length in decay direction.
const Set & getSet() const
The set to be used in sumMulti.
Base class for unpreconditioned domain-wall-like fermion actions.
void PropToFerm(const LatticePropagatorF &b, LatticeFermionF &a, int color_index, int spin_index)
Extract a LatticeFermion from a LatticePropagator.
void FermToProp(const LatticeFermionF &a, LatticePropagatorF &b, int color_index, int spin_index)
Insert a LatticeFermion into a LatticePropagator.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void nef_quarkProp4(LatticePropagator &q_sol, XMLWriter &xml_out, const LatticePropagator &q_src, int t_src, int j_decay, const UnprecDWFermActBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &S_f, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam, int &ncg_had)
Given a complete propagator as a source, this does all the inversions needed.
void nef_quarkProp_a(LatticePropagator &q_sol, XMLWriter &xml_out, const LatticePropagator &q_src, int t_src, int j_decay, const C< T, P, Q > &S_f, Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam, int &ncg_had)
Given a complete propagator as a source, this does all the inversions needed.
SpinMatrix C()
C = Gamma(10)
Asqtad Staggered-Dirac operator.
push(xml_out,"Condensates")
multi1d< LatticeFermion > chi(Ncb)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
const WilsonTypeFermAct< multi1d< LatticeFermion > > & S_f
multi1d< LatticeFermion > s(Ncb)
Full quark propagator solver for domain wall fermions.
Fourier transform phase factor support.
Hold group xml and type id.
Holds return info from SystemSolver call.