43 namespace RandZNWallQuarkSourceConstEnv
92 XMLReader paramtop(xml, path);
95 read(paramtop,
"version", version);
103 QDPIO::cerr << __func__ <<
": parameter version " << version
104 <<
" unsupported." << std::endl;
111 read(paramtop,
"N",
N);
113 if (paramtop.count(
"Displacement") != 0)
121 if (paramtop.count(
"LinkSmearing") != 0)
139 write(xml,
"version", version);
153 QDPIO::cout <<
"Rand Z"<<
params.
N<<
" Wall source" << std::endl;
164 LatticePropagator quark_source;
171 multi1d<LatticeColorMatrix> u_smr =
u;
174 XMLReader linktop(xml_l);
179 (*linkSmearing)(u_smr);
186 XMLReader smeartop(xml_s);
196 XMLReader displacetop(xml_d);
202 multi1d<LatticeColorVector> tmp_color_vec(Nc);
204 LatticeReal rnd,theta;
210 theta = twopiN * floor(
params.
N*rnd);
211 z = cmplx(cos(theta),sin(theta));
214 for(
int i=0;
i<Nc;
i++) {
215 tmp_color_vec[
i] =
zero;
216 pokeColor(tmp_color_vec[
i],
z,
i);
219 for(
int color_source = 0; color_source < Nc; ++color_source)
221 QDPIO::cout <<
"color = " << color_source << std::endl;
224 LatticeColorVector src_color_vec ;
225 if((slice>=Layout::lattSize()[
mu])||(slice<0)){
226 QDPIO::cout<<
"Doing the full Volume source"<<std::endl ;
227 src_color_vec = tmp_color_vec[color_source] ;
231 src_color_vec = where( Layout::latticeCoordinate(
mu) == slice,
232 tmp_color_vec[color_source],
233 LatticeColorVector(
zero));
235 for(
int spin_source = 0; spin_source < Ns; ++spin_source)
237 QDPIO::cout <<
"spin = " << spin_source << std::endl;
259 (*quarkDisplacement)(quark_source, u_smr,
MINUS);
262 (*quarkSmearing)(quark_source, u_smr);
266 (*quarkSmearing)(quark_source, u_smr);
271 (*quarkDisplacement)(quark_source, u_smr,
MINUS);
275 QDPIO::cerr <<
name <<
": Caught Exception smearing: " << e << std::endl;
Primary include file for CHROMA library code.
Class for counted reference semantics.
Base class for quark source construction.
Random ZN wall source construction.
T operator()(const multi1d< LatticeColorMatrix > &u) const
Construct the source.
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.
Class for counted reference semantics.
All link smearing constructors.
Factory for producing link smearing objects.
void savern(int iseed[4])
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.
Random Z2 wall source construction.
Simple quark displacement.
Factory for producing quark prop sources.
Random ZN wall source parameters.
GroupXML_t quark_displacement
void writeXML(XMLWriter &in, const std::string &path) const
GroupXML_t quark_smearing