22 namespace InlinePropagatorFermEnv
56 XMLReader inputtop(xml, path);
83 XMLReader paramtop(xml_in, path);
85 if (paramtop.count(
"Frequency") == 1)
97 if (paramtop.count(
"xml_file") != 0)
104 QDPIO::cerr << __func__ <<
": Caught Exception reading XML: " << e << std::endl;
140 push(xml_out,
"propagator");
141 write(xml_out,
"update_no", update_no);
142 write(xml_out,
"xml_file", xml_file);
145 XMLFileWriter xml(xml_file);
146 func(update_no, xml);
150 func(update_no, xml_out);
167 XMLBufferWriter gauge_xml;
173 catch( std::bad_cast )
185 const multi1d<LatticeColorMatrix>&
u =
188 push(xml_out,
"propagator");
189 write(xml_out,
"update_no", update_no);
199 write(xml_out,
"Config_info", gauge_xml);
201 push(xml_out,
"Output_version");
202 write(xml_out,
"out_version", 1);
206 MesPlq(xml_out,
"Observables",
u);
211 XMLReader source_file_xml, source_record_xml;
212 LatticeFermion quark_source;
214 bool make_sourceP =
false;
215 bool seqsourceP =
false;
216 QDPIO::cout <<
"Snarf the source from a named buffer" << std::endl;
227 if (source_record_xml.count(
"/MakeSource") != 0)
231 else if (source_record_xml.count(
"/SequentialSource") != 0)
241 write(xml_out,
"Source_file_info", source_file_xml);
242 write(xml_out,
"Source_record_info", source_record_xml);
244 catch (std::bad_cast)
256 QDPIO::cout <<
"Source successfully read and parsed" << std::endl;
264 multi1d<Double> source_corr = sumMulti(localNorm2(quark_source),
267 push(xml_out,
"Source_correlator");
268 write(xml_out,
"source_corr", source_corr);
278 LatticeFermion quark_soln =
zero;
285 XMLReader fermacttop(xml_s);
296 QDPIO::cout <<
"Try the various factories" << std::endl;
299 typedef LatticeFermion
T;
300 typedef multi1d<LatticeColorMatrix>
P;
301 typedef multi1d<LatticeColorMatrix>
Q;
314 QDPIO::cout <<
"Suitable factory found: compute the quark prop" << std::endl;
321 QDPIO::cout <<
"Propagator computed: time= "
322 << swatch.getTimeInSeconds()
323 <<
" secs" << std::endl;
328 <<
": caught exception around qprop: " << e << std::endl;
333 push(xml_out,
"Relaxation_Iterations");
334 write(xml_out,
"ncg_had", ncg_had);
342 multi1d<Double> prop_corr = sumMulti(localNorm2(quark_soln),
345 push(xml_out,
"Prop_correlator");
346 write(xml_out,
"prop_corr", prop_corr);
354 QDPIO::cout <<
"Start writing propagator info" << std::endl;
356 XMLBufferWriter file_xml;
357 push(file_xml,
"propagator");
361 XMLBufferWriter record_xml;
364 XMLReader xml_tmp(source_record_xml,
"/MakeSource");
366 push(record_xml,
"Propagator");
368 record_xml << xml_tmp;
373 XMLReader xml_tmp(source_record_xml,
"/SequentialSource");
375 push(record_xml,
"SequentialProp");
377 record_xml << xml_tmp;
387 QDPIO::cout <<
"Propagator successfully updated" << std::endl;
389 catch (std::bad_cast)
405 << snoop.getTimeInSeconds()
406 <<
" secs" << std::endl;
Inline measurement factory.
Class for counted reference semantics.
Inline task for generating propagators.
void operator()(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
InlinePropagatorFermParams params
void func(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
Fourier transform phase factor support.
const Set & getSet() const
The set to be used in sumMulti.
Class structure for fermion actions.
Fermion action factories.
All Wilson-type fermion actions.
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.
std::string uniqueId()
Return a unique id.
void proginfo(XMLWriter &xml)
Print out basic information about this program.
std::string makeXMLFileName(std::string xml_file, unsigned long update_no)
Return a xml file name for inline measurements.
Inline construction of propagator returning only a single lattice fermion.
Named object function std::map.
static bool registered
Local registration flag.
multi1d< LatticeColorMatrix > P
bool registerAll()
Register all the factories.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::Q Q
push(xml_out,"Condensates")
LinOpSysSolverMGProtoClover::T T
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
const WilsonTypeFermAct< multi1d< LatticeFermion > > & S_f
Print out basic info about this program.
Fourier transform phase factor support.
InlinePropagatorFermParams()
struct Chroma::InlinePropagatorFermParams::NamedObject_t named_obj
Holds return info from SystemSolver call.