31 namespace SFShellQuarkSourceConstEnv
82 XMLReader paramtop(xml, path);
85 read(paramtop,
"version", version);
93 QDPIO::cerr << __func__ <<
": parameter version " << version
94 <<
" unsupported." << std::endl;
100 if (paramtop.count(
"Displacement") != 0)
105 if (paramtop.count(
"LinkSmearing") != 0)
117 if (j_decay < 0 || j_decay >=
Nd)
119 QDPIO::cerr <<
name <<
": invalid j_decay=" <<
j_decay << std::endl;
131 write(xml,
"version", version);
151 QDPIO::cout <<
"SF Shell source" << std::endl;
154 LatticePropagator quark_source;
158 SpinMatrix g_one = 1.0;
159 SpinMatrix P_plus = 0.5*(g_one + (Gamma(jd) * g_one));
160 SpinMatrix P_minus = 0.5*(g_one - (Gamma(jd) * g_one));
167 multi1d<LatticeColorMatrix> u_smr =
u;
170 XMLReader linktop(xml_l);
177 (*linkSmearing)(u_smr);
184 XMLReader smeartop(xml_s);
196 XMLReader displacetop(xml_d);
208 XMLReader fermbctop(xml_f);
212 multi1d<LatticeColorMatrix>,
213 multi1d<LatticeColorMatrix> > >
228 QDPIO::cerr <<
name <<
": time slice source location does not agree with this FermBC" << std::endl;
233 for(
int color_source = 0; color_source < Nc; ++color_source)
235 QDPIO::cout <<
"color = " << color_source << std::endl;
237 LatticeColorVector src_color_vec =
zero;
242 for(
int spin_source = 0; spin_source < Ns; ++spin_source)
244 QDPIO::cout <<
"spin = " << spin_source << std::endl;
248 LatticeFermion tmp1 =
zero;
249 CvToFerm(src_color_vec, tmp1, spin_source);
263 QDPIO::cerr <<
name <<
": illegal direction" << std::endl;
279 (*quarkDisplacement)(quark_source, u_smr,
MINUS);
282 (*quarkSmearing)(quark_source, u_smr);
286 QDPIO::cerr <<
name <<
": caught dynamic cast error" << std::endl;
291 QDPIO::cerr <<
name <<
": Caught Exception smearing: " << 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.
Shell 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.
bool registerAll()
Register all the factories.
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.
All quark smearing constructors.
Factory for producing quark smearing objects.
Fermion action boundary conditions.
Shell source construction for Schroedinger Functional.
Factory for producing quark prop sources.
Point source construction.
void writeXML(XMLWriter &out, const std::string &path) const
GroupXML_t quark_displacement
GroupXML_t quark_smearing