25 namespace SFPointQuarkSourceConstEnv
82 XMLReader paramtop(xml, path);
85 read(paramtop,
"version", version);
93 QDPIO::cerr << __func__ <<
": parameter version " << version
94 <<
" unsupported." << std::endl;
103 if (paramtop.count(
"Displacement") != 0)
108 if (paramtop.count(
"LinkSmearing") != 0)
114 if (j_decay < 0 || j_decay >=
Nd)
116 QDPIO::cerr <<
name <<
": invalid j_decay=" <<
j_decay << std::endl;
128 write(xml,
"version", version);
147 QDPIO::cout <<
"SF Point source" << std::endl;
150 LatticePropagator quark_source;
154 SpinMatrix g_one = 1.0;
155 SpinMatrix P_plus = 0.5*(g_one + (Gamma(jd) * g_one));
156 SpinMatrix P_minus = 0.5*(g_one - (Gamma(jd) * g_one));
163 multi1d<LatticeColorMatrix> u_smr =
u;
166 XMLReader linktop(xml_l);
173 (*linkSmearing)(u_smr);
180 XMLReader displacetop(xml_d);
191 XMLReader fermbctop(xml_s);
195 multi1d<LatticeColorMatrix>,
196 multi1d<LatticeColorMatrix> > >
211 QDPIO::cerr <<
name <<
": time slice source location does not agree with this FermBC" << std::endl;
217 for(
int color_source = 0; color_source < Nc; ++color_source)
219 QDPIO::cout <<
"color = " << color_source << std::endl;
221 LatticeColorVector src_color_vec =
zero;
226 for(
int spin_source = 0; spin_source < Ns; ++spin_source)
228 QDPIO::cout <<
"spin = " << spin_source << std::endl;
232 LatticeFermion tmp1 =
zero;
233 CvToFerm(src_color_vec, tmp1, spin_source);
247 QDPIO::cerr <<
name <<
": illegal direction" << std::endl;
261 (*quarkDisplacement)(quark_source, u_smr,
MINUS);
266 QDPIO::cerr <<
name <<
": caught dynamic cast error" << std::endl;
271 QDPIO::cerr <<
name <<
": Caught Exception in source construction: " << e << std::endl;
282 LatticeStaggeredPropagator
285 QDPIO::cout <<
"Point source" << std::endl;
288 LatticeStaggeredPropagator quark_source;
295 multi1d<LatticeColorMatrix> u_smr =
u;
298 XMLReader linktop(xml_l);
305 (*linkSmearing)(u_smr);
312 XMLReader displacetop(xml_d);
319 for(
int color_source = 0; color_source < Nc; ++color_source)
321 QDPIO::cout <<
"color = " << color_source << std::endl;
323 LatticeColorVector src_color_vec =
zero;
330 LatticeStaggeredFermion
chi =
zero;
343 (*quarkDisplacement)(quark_source, u_smr,
MINUS);
348 QDPIO::cerr <<
name <<
": Caught Exception in source construction: " << e << std::endl;
Primary include file for CHROMA library code.
Base class for all fermion action boundary conditions.
Class for counted reference semantics.
Base class for quark source construction.
Point source construction for Schroedinger functional.
T operator()(const multi1d< LatticeColorMatrix > &u) const
Construct the source.
Abstract class for all gauge action boundary conditions with Schroedinger BC.
virtual int getDecayMin() const =0
Starting slice in decay direction.
virtual int getDecayMax() const =0
Ending slice in decay direction.
Fermion action boundary conditions.
Fermion Boundary Condition factories.
All Wilson-type fermion boundary conditions.
void CvToFerm(const LatticeColorVectorF &a, LatticeFermionF &b, int spin_index)
Convert (insert) a LatticeColorVector into a LatticeFermion.
void FermToProp(const LatticeFermionF &a, LatticePropagatorF &b, int color_index, int spin_index)
Insert a LatticeFermion into a LatticePropagator.
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.
GroupXML_t readXMLGroup(XMLReader &xml_in, const std::string &path, const std::string &type_name)
Read group and return as a std::string.
void srcfil(LatticeFermion &a, const multi1d< int > &coord, int color_index, int spin_index)
Fill a specific color and spin index with 1.0.
Class for counted reference semantics.
All link smearing constructors.
Factory for producing link smearing objects.
static bool registered
Local registration flag.
const std::string name
Name to be used.
GroupXML_t nullXMLGroup()
Returns a no-linksmearing group.
bool registerAll()
Register all the factories.
bool registerAll()
Register all the factories.
GroupXML_t nullXMLGroup()
Returns a no-displacement group.
std::string getName()
Return the name.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
multi1d< LatticeFermion > chi(Ncb)
All quark displacement constructors.
Factory for producing quark displacement objects.
Fermion action boundary conditions.
Point source construction for Schroedinger Functional.
Factory for producing quark prop sources.
Point source construction.
SFPoint source parameters.
void writeXML(XMLWriter &in, const std::string &path) const
GroupXML_t quark_displacement