20 namespace InlineQQQNucNucEnv
54 XMLReader paramtop(xml, path);
57 read(paramtop,
"version", version);
64 QDPIO::cerr <<
"Input parameter version " << version <<
" unsupported." << std::endl;
70 if(paramtop.count(
"doVectorMesons") != 0 )
72 if(paramtop.count(
"doDecupletBar") != 0 )
94 XMLReader inputtop(xml, path);
118 XMLReader paramtop(xml_in, path);
120 if (paramtop.count(
"Frequency") == 1)
132 if (paramtop.count(
"qqq_file") != 0)
138 if (paramtop.count(
"qqbar_file") != 0)
144 if (paramtop.count(
"xml_file") != 0)
148 QDPIO::cerr <<
"Caught Exception reading XML: " << e << std::endl;
177 push(xml_out,
"qqqNucNuc_w");
178 write(xml_out,
"update_no", update_no);
179 write(xml_out,
"xml_file", xml_file);
182 XMLFileWriter xml(xml_file);
183 func(update_no, xml);
186 func(update_no, xml_out);
201 XMLBufferWriter gauge_xml;
207 catch( std::bad_cast )
219 const multi1d<LatticeColorMatrix>&
u =
222 push(xml_out,
"qqqNucNuc_w");
223 write(xml_out,
"update_no", update_no);
224 QDPIO::cout <<
" QQQNucNuc: Spectroscopy for Wilson fermions" << std::endl;
243 QDPIO::cerr <<
"OOOPS!! Don't know what to do with all theses propagators.... " << std::endl;
247 QDPIO::cout << std::endl <<
" Gauge group: SU(" << Nc <<
")" << std::endl;
250 QDPIO::cout <<
" volume: " << Layout::lattSize()[0];
251 for (
int i=1;
i<
Nd; ++
i) {
252 QDPIO::cout <<
" x " << Layout::lattSize()[
i];
254 QDPIO::cout << std::endl;
264 write(xml_out,
"Config_info", gauge_xml);
266 push(xml_out,
"Output_version");
267 write(xml_out,
"out_version", 1);
273 MesPlq(xml_out,
"Observables",
u);
294 XMLReader prop_file_xml,prop_xml ;
301 read(prop_xml,
"/SinkSmear", quark_header[loop]);
302 read(prop_xml,
"/SinkSmear/PropSink/Sink/SinkType", sink_types[loop]);
306 QDPIO::cerr <<
"Error extracting forward_prop header: " << e << std::endl;
313 QDPIO::cout <<
"Try action and mass" << std::endl;
317 QDPIO::cout <<
"FermAct = " << quark_header[loop].prop_header.fermact.path << std::endl;
318 QDPIO::cout <<
"Mass = " <<
Mass[loop] << std::endl;
319 QDPIO::cout <<
"boundary = "
323 <<
bc[loop][3]<< std::endl;
327 int j_decay = quark_header[0].source_header.j_decay;
328 multi1d<int>
t_srce = quark_header[0].source_header.getTSrce();
330 int t_source = quark_header[0].source_header.t_source;
335 if(sink_types[loop]!=sink_types[0]){
336 QDPIO::cerr <<
"Error!! sink types must be same for all propagators " << std::endl;
339 if(quark_header[loop].source_header.j_decay!=
j_decay){
340 QDPIO::cerr <<
"Error!! j_decay must be the same for all propagators " << std::endl;
344 QDPIO::cerr <<
"Error!! bc must be the same for all propagators " << std::endl;
347 for(
int d(0);
d<
Nd;
d++)
348 if(quark_header[loop].source_header.t_source!=
t_source){
349 QDPIO::cerr <<
"Error!! t_source must be the same for all propagators " << std::endl;
356 if (sink_types[0] ==
"POINT_SINK")
358 else if (sink_types[0] ==
"SHELL_SINK")
370 push(xml_out,
"Propagator_info") ;
373 push(xml_out,
"Propagator");
376 push(xml_out,
"elem");
377 write(xml_out,
"ForwardProp", quark_header[loop]);
378 multi1d<Double> qp_corr= sumMulti(localNorm2(qprop[loop]),phases.
getSet());
379 push(xml_out,
"Qprop_correlator");
380 write(xml_out,
"qp_corr", qp_corr);
387 XMLBufferWriter file_xml;
388 push(file_xml,
"qqqNucNuc_w");
389 push(file_xml,
"Output_version");
390 write(file_xml,
"out_version", 1);
395 write(xml_out,
"Config_info", gauge_xml);
396 push(file_xml,
"Propagator_info") ;
399 push(file_xml,
"Propagator");
402 push(file_xml,
"elem");
403 write(file_xml,
"ForwardProp", quark_header[loop]);
404 multi1d<Double> qp_corr= sumMulti(localNorm2(qprop[loop]),phases.
getSet());
405 push(file_xml,
"Qprop_correlator");
406 write(file_xml,
"qp_corr", qp_corr);
417 QDPFileWriter qqbarto;
419 qqqto.open(file_xml,
params.
qqq_file, QDPIO_SINGLEFILE, QDPIO_SERIAL);
437 for(
int k(1);
k<
Nd;
k++){
438 std::ostringstream
tag ;
450 for(
int k(0);
k<
Nd-1;
k++){
451 std::ostringstream
tag ;
468 for(
int k(1);
k<
Nd;
k++){
469 std::ostringstream
tag ;
484 for(
int k(0);
k<
Nd-1;
k++){
485 std::ostringstream
tag ;
524 for(
int k(0);
k<
Nd-1;
k++){
526 std::ostringstream
tag ;
534 std::ostringstream
tag ;
554 << snoop.getTimeInSeconds()
555 <<
" secs" << std::endl;
Inline measurement factory.
Inline measurement of baryon-baryon 2-pt correlators.
void operator()(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
void func(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
InlineQQQNucNucParams params
Fourier transform phase factor support.
int numSubsets() const
Number of subsets - length in decay direction.
int numMom() const
Number of momenta.
const Set & getSet() const
The set to be used in sumMulti.
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.
void compute_qqbar(multi2d< DPropagator > &qqbar, const LatticePropagator &quark_prop_1, const LatticePropagator &quark_prop_2, const SftMom &phases, int t0)
Meson-Meson 4-pt functions.
void compute_qqq(multi2d< ThreeQuarks > &qqq, const LatticePropagator &q1, const LatticePropagator &q2, const LatticePropagator &q3, const SftMom &phases, int t0, int bc_spec)
Baryon-Baryon 2-pt functions (C\gamma_5 diquark)
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.
ForwardProp_t prop_header
The QQQ and QQBAR object calculation.
Named object function std::map.
static bool registered
Local registration flag.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
void write_qqbar(QDPFileWriter &to, multi2d< DPropagator > &qqbar, const SftMom &phases, std::string type, std::string sink)
Real getMass(const GroupXML_t &fermact)
Given a fermion action in std::string form, return the Mass.
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > & Mass
push(xml_out,"Condensates")
void write_qqq(QDPFileWriter &to, multi2d< ThreeQuarks > &qqq, const SftMom &phases, std::string type, std::string sink)
void write(XMLWriter &xml, const std::string &path, const InlineQQQNucNucParams::NamedObject_t &input)
Propagator output.
multi1d< int > getFermActBoundary(const GroupXML_t &fermact)
Given a fermion action in std::string form, return the boundary.
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
std::string tag(const std::string &prefix)
Print out basic info about this program.
Routines associated with Chroma propagator IO.
constructs 2 quark propagators contracted at the sink
constructs 3 quark propagators contracted at the sink
Fourier transform phase factor support.
multi1d< std::string > prop_ids
struct Chroma::InlineQQQNucNucParams::NamedObject_t named_obj
struct Chroma::InlineQQQNucNucParams::Param_t param
void write(XMLWriter &xml_out, const std::string &path)