CHROMA
inline_qqqNucNuc_w.cc
Go to the documentation of this file.
1 /*! \file
2  * \brief The QQQ and QQBAR object calculation
3  *
4  */
5 
6 #include "inline_qqqNucNuc_w.h"
7 #include "meas/hadron/qqq_w.h"
8 #include "meas/hadron/qqbar_w.h"
10 #include "meas/glue/mesplq.h"
11 #include "util/ft/sftmom.h"
12 #include "util/info/proginfo.h"
13 //#include "io/param_io.h"
14 #include "io/qprop_io.h"
17 
18 namespace Chroma
19 {
20  namespace InlineQQQNucNucEnv
21  {
22  namespace
23  {
24  AbsInlineMeasurement* createMeasurement(XMLReader& xml_in,
25  const std::string& path)
26  {
27  return new InlineQQQNucNuc(InlineQQQNucNucParams(xml_in, path));
28  }
29 
30  //! Local registration flag
31  bool registered = false;
32  }
33 
34  const std::string name = "QQQ_NUCNUC";
35 
36  //! Register all the factories
37  bool registerAll()
38  {
39  bool success = true;
40  if (! registered)
41  {
42  success &= TheInlineMeasurementFactory::Instance().registerObject(name, createMeasurement);
43  registered = true;
44  }
45  return success;
46  }
47  }
48 
49 
50 
51  //! Reader for parameters
52  void read(XMLReader& xml, const std::string& path, InlineQQQNucNucParams::Param_t& param)
53  {
54  XMLReader paramtop(xml, path);
55 
56  int version;
57  read(paramtop, "version", version);
58 
59  switch (version)
60  {
61  case 2:
62  break;
63  default:
64  QDPIO::cerr << "Input parameter version " << version << " unsupported." << std::endl;
65  QDP_abort(1);
66  }
67  read(paramtop, "max_p2", param.max_p2);
68  param.doVectorMesons = false ;
69  param.doDecupletBar = false ;
70  if(paramtop.count("doVectorMesons") != 0 )
71  read(paramtop, "doVectorMesons", param.doVectorMesons);
72  if(paramtop.count("doDecupletBar") != 0 )
73  read(paramtop, "doDecupletBar", param.doDecupletBar);
74 
75  }
76 
77 
78  //! Writer for parameters
79  void write(XMLWriter& xml, const std::string& path, const InlineQQQNucNucParams::Param_t& param)
80  {
81  push(xml, path);
82 
83  write(xml, "max_p2", param.max_p2);
84  write(xml, "doVectorMesons", param.doVectorMesons);
85  write(xml, "doDecupletBar", param.doDecupletBar);
86 
87  pop(xml);
88  }
89 
90 
91  //! Propagator input
92  void read(XMLReader& xml, const std::string& path, InlineQQQNucNucParams::NamedObject_t& input)
93  {
94  XMLReader inputtop(xml, path);
95 
96  read(inputtop, "gauge_id", input.gauge_id);
97  read(inputtop, "prop_ids", input.prop_ids);
98  }
99 
100  //! Propagator output
101  void write(XMLWriter& xml, const std::string& path, const InlineQQQNucNucParams::NamedObject_t& input)
102  {
103  push(xml, path);
104 
105  write(xml, "gauge_id", input.gauge_id);
106  write(xml, "prop_ids", input.prop_ids);
107 
108  pop(xml);
109  }
110 
111 
112  // Param stuff
114 
116  {
117  try{
118  XMLReader paramtop(xml_in, path);
119 
120  if (paramtop.count("Frequency") == 1)
121  read(paramtop, "Frequency", frequency);
122  else
123  frequency = 1;
124 
125  // Parameters for source construction
126  read(paramtop, "Param", param);
127 
128  // Read in the output propagator/source configuration info
129  read(paramtop, "NamedObject", named_obj);
130 
131  // Possible alternate qqq output file
132  if (paramtop.count("qqq_file") != 0)
133  read(paramtop, "qqq_file", qqq_file);
134  else // default qqq_file
135  qqq_file = "DONTDO_qqq" ;
136 
137  // Possible alternate qqq output file
138  if (paramtop.count("qqbar_file") != 0)
139  read(paramtop, "qqbar_file", qqbar_file);
140  else // default qqq_file
141  qqbar_file = "DONTDO_qqbar" ;
142 
143  // Possible alternate XML file pattern
144  if (paramtop.count("xml_file") != 0)
145  read(paramtop, "xml_file", xml_file);
146  }
147  catch(const std::string& e){
148  QDPIO::cerr << "Caught Exception reading XML: " << e << std::endl;
149  QDP_abort(1);
150  }
151  }
152 
153 
154  void
155  InlineQQQNucNucParams::write(XMLWriter& xml_out, const std::string& path)
156  {
157  push(xml_out, path);
158 
159  Chroma::write(xml_out, "Param", param);
160  Chroma::write(xml_out, "NamedObject", named_obj);
161  QDP::write(xml_out, "qqq_file", qqq_file);
162  QDP::write(xml_out, "xml_file", xml_file);
163 
164  pop(xml_out);
165  }
166 
167 
168  // Function call
169  void
170  InlineQQQNucNuc::operator()(unsigned long update_no,
171  XMLWriter& xml_out)
172  {
173  // If xml file not empty, then use alternate
174  if (params.xml_file != ""){
175  std::string xml_file = makeXMLFileName(params.xml_file, update_no);
176 
177  push(xml_out, "qqqNucNuc_w");
178  write(xml_out, "update_no", update_no);
179  write(xml_out, "xml_file", xml_file);
180  pop(xml_out);
181 
182  XMLFileWriter xml(xml_file);
183  func(update_no, xml);
184  }
185  else
186  func(update_no, xml_out);
187  }
188 
189 
190  // Real work done here
191  void InlineQQQNucNuc::func(unsigned long update_no,
192  XMLWriter& xml_out)
193  {
194  START_CODE();
195 
196  StopWatch snoop;
197  snoop.reset();
198  snoop.start();
199 
200  // Test and grab a reference to the gauge field
201  XMLBufferWriter gauge_xml;
202  try
203  {
204  TheNamedObjMap::Instance().getData< multi1d<LatticeColorMatrix> >(params.named_obj.gauge_id);
205  TheNamedObjMap::Instance().get(params.named_obj.gauge_id).getRecordXML(gauge_xml);
206  }
207  catch( std::bad_cast )
208  {
209  QDPIO::cerr << InlineQQQNucNucEnv::name << ": caught dynamic cast error"
210  << std::endl;
211  QDP_abort(1);
212  }
213  catch (const std::string& e)
214  {
215  QDPIO::cerr << InlineQQQNucNucEnv::name << ": std::map call failed: " << e
216  << std::endl;
217  QDP_abort(1);
218  }
219  const multi1d<LatticeColorMatrix>& u =
220  TheNamedObjMap::Instance().getData< multi1d<LatticeColorMatrix> >(params.named_obj.gauge_id);
221 
222  push(xml_out, "qqqNucNuc_w");
223  write(xml_out, "update_no", update_no);
224  QDPIO::cout << " QQQNucNuc: Spectroscopy for Wilson fermions" << std::endl;
225 
226  // Type of sink smearing
227 
228 
229  /*
230  * Sanity checks
231  */
232  switch( params.named_obj.prop_ids.size()){
233  case 1: //only up down
234  break ;
235  case 2: //only up down (0) and strange (1)
236  break ;
237  case 3:
238  // 0 ---> up down only: Proton// neutron (up-down degenerate)
239  // 1 ---> up down strange: Lambda
240  // 3 ---> up down strange charm: charmed baryons and mesons
241  break ;
242  default:
243  QDPIO::cerr << "OOOPS!! Don't know what to do with all theses propagators.... " << std::endl;
244  QDP_abort(1);
245  }
246 
247  QDPIO::cout << std::endl << " Gauge group: SU(" << Nc << ")" << std::endl;
248 
249 
250  QDPIO::cout << " volume: " << Layout::lattSize()[0];
251  for (int i=1; i<Nd; ++i) {
252  QDPIO::cout << " x " << Layout::lattSize()[i];
253  }
254  QDPIO::cout << std::endl;
255 
256 
257  proginfo(xml_out); // Print out basic program info
258 
259  // Write out the input
260  params.write(xml_out, "Input");
261 
262 
263  // Write out the config info
264  write(xml_out, "Config_info", gauge_xml);
265 
266  push(xml_out, "Output_version");
267  write(xml_out, "out_version", 1);
268  pop(xml_out);
269 
270  /* I AM HERE */
271 
272  // First calculate some gauge invariant observables just for info.
273  MesPlq(xml_out, "Observables", u);
274 
275 
276  multi1d<ForwardProp_t> quark_header(params.named_obj.prop_ids.size());
277  multi1d<LatticePropagator> qprop(params.named_obj.prop_ids.size());
278  multi1d<Real> Mass(params.named_obj.prop_ids.size());
279  multi1d<std::string> sink_types(params.named_obj.prop_ids.size());
280  multi2d<int> bc(params.named_obj.prop_ids.size(), 4);
281 
282  // Now read the propagators we need
283  for (int loop(0); loop < params.named_obj.prop_ids.size(); ++loop)
284  {
285  // readQprop(prop_file_xml, prop_xml, qprop[loop],
286  // params.prop.prop_files[loop], QDPIO_SERIAL);
287 
288  // Snarf the data into a copy
289  qprop[loop] =
290  TheNamedObjMap::Instance().getData<LatticePropagator>(params.named_obj.prop_ids[loop]);
291 
292  // Snarf the source info.
293  // This is will throw if the source_id is not there
294  XMLReader prop_file_xml,prop_xml ;
295  TheNamedObjMap::Instance().get(params.named_obj.prop_ids[loop]).getFileXML(prop_file_xml);
296  TheNamedObjMap::Instance().get(params.named_obj.prop_ids[loop]).getRecordXML(prop_xml);
297  // Try to invert this record XML into a ChromaProp struct
298  // Also pull out the id of this source
299  try
300  {
301  read(prop_xml, "/SinkSmear", quark_header[loop]);
302  read(prop_xml, "/SinkSmear/PropSink/Sink/SinkType", sink_types[loop]);
303  }
304  catch (const std::string& e)
305  {
306  QDPIO::cerr << "Error extracting forward_prop header: " << e << std::endl;
307  QDP_abort(1);
308  }
309 
310  // Hunt around to find the mass and the boundary conditions
311  // NOTE: this may be problematic in the future if actions are used with no
312  // clear def. of a Mass
313  QDPIO::cout << "Try action and mass" << std::endl;
314  Mass[loop] = getMass(quark_header[loop].prop_header.fermact);
315  bc[loop] = getFermActBoundary(quark_header[loop].prop_header.fermact);
316 
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 = "
320  << bc[loop][0]<<" "
321  << bc[loop][1]<<" "
322  << bc[loop][2]<<" "
323  << bc[loop][3]<< std::endl;
324  }
325 
326  // Derived from input prop
327  int j_decay = quark_header[0].source_header.j_decay;
328  multi1d<int> t_srce = quark_header[0].source_header.getTSrce();
329  //int t0 = t_source[j_decay];
330  int t_source = quark_header[0].source_header.t_source;
331  int t0 = t_source ;
332  int bc_spec = bc[0][j_decay] ;
333  for (int loop(0); loop < params.named_obj.prop_ids.size(); ++loop)
334  {
335  if(sink_types[loop]!=sink_types[0]){
336  QDPIO::cerr << "Error!! sink types must be same for all propagators " << std::endl;
337  QDP_abort(1);
338  }
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;
341  QDP_abort(1);
342  }
343  if(bc[loop][j_decay]!=bc_spec){
344  QDPIO::cerr << "Error!! bc must be the same for all propagators " << std::endl;
345  QDP_abort(1);
346  }
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;
350  QDP_abort(1);
351  }
352  }
353 
354  // Establish the sink smearing type
356  if (sink_types[0] == "POINT_SINK")
357  sink_type = "POINT";
358  else if (sink_types[0] == "SHELL_SINK")
359  sink_type = "SHELL";
360  else
361  {
362  QDPIO::cerr << InlineQQQNucNucEnv::name << ": unknown sink type = " << sink_types[0] << std::endl;
363  QDP_abort(1);
364  }
365 
366  // phases with momenta
367  SftMom phases(params.param.max_p2, t_srce, false, j_decay);
368 
369 
370  push(xml_out,"Propagator_info") ;
371  write(xml_out, "Masses", Mass);
372  write(xml_out, "t_source", t_source);
373  push(xml_out, "Propagator");
374  for (int loop=0; loop < params.named_obj.prop_ids.size(); ++loop)
375  {
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);
381  pop(xml_out); //Qprop_correlator
382  pop(xml_out); //elem
383  }
384  pop(xml_out); //Propagator
385  pop(xml_out); //Propagator_info
386 
387  XMLBufferWriter file_xml;
388  push(file_xml, "qqqNucNuc_w");
389  push(file_xml, "Output_version");
390  write(file_xml, "out_version", 1);
391  pop(file_xml);
392  proginfo(file_xml); // Print out basic program info
393  params.write(file_xml, "Input");
394  // Write out the config info
395  write(xml_out, "Config_info", gauge_xml);
396  push(file_xml,"Propagator_info") ;
397  write(file_xml, "Masses", Mass);
398  write(file_xml, "t_source", t_source);
399  push(file_xml, "Propagator");
400  for (int loop=0; loop < params.named_obj.prop_ids.size(); ++loop)
401  {
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);
407  pop(file_xml); //Qprop_correlator
408  pop(file_xml); //elem
409  }
410  pop(file_xml); //Propagator
411  pop(file_xml); //Propagator_info
412  write(file_xml, "MomNum", phases.numMom());
413  pop(file_xml); //qqqNucNuc_w
414 
415  // Write the scalar data
416  QDPFileWriter qqqto;
417  QDPFileWriter qqbarto;
418  if(params.qqq_file != "DONTDO_qqq")
419  qqqto.open(file_xml,params.qqq_file, QDPIO_SINGLEFILE, QDPIO_SERIAL);
420  //QDPIO_OPEN);
421 
422  if(params.qqbar_file != "DONTDO_qqbar")
423  qqbarto.open(file_xml,params.qqbar_file, QDPIO_SINGLEFILE, QDPIO_SERIAL);
424  // QDPIO_OPEN);
425 
426 
427  multi2d<ThreeQuarks> qqq(phases.numMom(),phases.numSubsets());
428  multi2d<DPropagator> qqbar(phases.numMom(),phases.numSubsets());
429 
430 
431  {
432  if(params.qqq_file != "DONTDO_qqq"){
433  compute_qqq(qqq, qprop[0],qprop[0],qprop[0],phases,t0, bc_spec);
434  write_qqq(qqqto, qqq, phases, "nucleon",sink_type);
435 
437  for(int k(1);k<Nd;k++){
438  std::ostringstream tag ;
439  tag<<"Delta_"<<k;
440  compute_qqq(qqq, k,qprop[0],qprop[0],qprop[0],phases,t0, bc_spec);
441  write_qqq(qqqto, qqq, phases, tag.str(), sink_type);
442  }
443 
444  }
445 
446  if(params.qqbar_file != "DONTDO_qqbar"){
447  compute_qqbar(qqbar, qprop[0],qprop[0],phases,t0 );
448  write_qqbar(qqbarto, qqbar, phases, "pion",sink_type);
450  for(int k(0);k<Nd-1;k++){
451  std::ostringstream tag ;
452  tag<<"rho_"<<k;
453  compute_qqbar(qqbar, (1<<k),qprop[0],qprop[0],phases,t0 );
454  write_qqbar(qqbarto, qqbar, phases, tag.str(),sink_type);
455  }
456  }
457 
458  if(params.named_obj.prop_ids.size()>1){
459  if(params.qqq_file != "DONTDO_qqq"){
460  compute_qqq(qqq, qprop[0],qprop[0],qprop[1],phases,t0, bc_spec);
461  write_qqq(qqqto, qqq, phases, "lambda",sink_type);
462  compute_qqq(qqq, qprop[1],qprop[0],qprop[0],phases,t0, bc_spec);
463  write_qqq(qqqto, qqq, phases, "sigma",sink_type);
464  compute_qqq(qqq, qprop[0],qprop[1],qprop[1],phases,t0, bc_spec);
465  write_qqq(qqqto, qqq, phases, "xi",sink_type);
466 
468  for(int k(1);k<Nd;k++){
469  std::ostringstream tag ;
470  tag<<"Omega_"<<k;
471  compute_qqq(qqq,k,qprop[1],qprop[1],qprop[1],phases,t0, bc_spec);
472  write_qqq(qqqto, qqq, phases, tag.str(), sink_type);
473  }
474 
475  }
476 
477  if(params.qqbar_file != "DONTDO_qqbar"){
478  compute_qqbar(qqbar, qprop[0],qprop[1],phases,t0 );
479  write_qqbar(qqbarto, qqbar, phases, "kaon",sink_type);
480  compute_qqbar(qqbar, qprop[1],qprop[0],phases,t0 );
481  write_qqbar(qqbarto, qqbar, phases, "kaonbar",sink_type);
482 
484  for(int k(0);k<Nd-1;k++){
485  std::ostringstream tag ;
486  tag<<"kaonst_"<<k;
487  compute_qqbar(qqbar, (1<<k), qprop[0],qprop[1],phases,t0 );
488  write_qqbar(qqbarto, qqbar, phases, tag.str(),sink_type);
489  compute_qqbar(qqbar, (1<<k), qprop[1],qprop[0],phases,t0 );
490  write_qqbar(qqbarto, qqbar, phases, "bar"+tag.str(),sink_type);
491  }
492  }
493  } // number of props > 1
494  // do strange and charmed states 20' states
495  if(params.named_obj.prop_ids.size()>2){
496  if(params.qqq_file != "DONTDO_qqq"){
497  compute_qqq(qqq, qprop[0],qprop[0],qprop[2],phases,t0, bc_spec);
498  write_qqq(qqqto, qqq, phases, "lambda_c",sink_type);
499  compute_qqq(qqq, qprop[2],qprop[0],qprop[0],phases,t0, bc_spec);
500  write_qqq(qqqto, qqq, phases, "sigma_c",sink_type);
501  compute_qqq(qqq, qprop[0],qprop[1],qprop[2],phases,t0, bc_spec);
502  write_qqq(qqqto, qqq, phases, "xi_c",sink_type);
503  compute_qqq(qqq, qprop[2],qprop[1],qprop[0],phases,t0, bc_spec);
504  write_qqq(qqqto, qqq, phases, "xip_c",sink_type);
505  compute_qqq(qqq, qprop[2],qprop[1],qprop[1],phases,t0, bc_spec);
506  write_qqq(qqqto, qqq, phases, "omega_c",sink_type);
507  compute_qqq(qqq, qprop[0],qprop[2],qprop[2],phases,t0, bc_spec);
508  write_qqq(qqqto, qqq, phases, "xi_cc",sink_type);
509  compute_qqq(qqq, qprop[1],qprop[2],qprop[2],phases,t0, bc_spec);
510  write_qqq(qqqto, qqq, phases, "omega_cc",sink_type);
511  }
512 
513  if(params.qqbar_file != "DONTDO_qqbar"){
514  compute_qqbar(qqbar, qprop[0],qprop[2],phases,t0 );
515  write_qqbar(qqbarto, qqbar, phases, "D",sink_type);
516  compute_qqbar(qqbar, qprop[2],qprop[0],phases,t0 );
517  write_qqbar(qqbarto, qqbar, phases, "Dbar",sink_type);
518  compute_qqbar(qqbar, qprop[1],qprop[2],phases,t0 );
519  write_qqbar(qqbarto, qqbar, phases, "Ds",sink_type);
520  compute_qqbar(qqbar, qprop[2],qprop[1],phases,t0 );
521  write_qqbar(qqbarto, qqbar, phases, "Dsbar",sink_type);
522 
524  for(int k(0);k<Nd-1;k++){
525  {
526  std::ostringstream tag ;
527  tag<<"Dst_"<<k;
528  compute_qqbar(qqbar, (1<<k), qprop[0],qprop[2],phases,t0 );
529  write_qqbar(qqbarto, qqbar, phases, tag.str(),sink_type);
530  compute_qqbar(qqbar, (1<<k), qprop[2],qprop[0],phases,t0 );
531  write_qqbar(qqbarto, qqbar, phases, "bar"+tag.str(),sink_type);
532  }
533  {
534  std::ostringstream tag ;
535  tag<<"Dsst_"<<k;
536  compute_qqbar(qqbar, (1<<k), qprop[1],qprop[2],phases,t0 );
537  write_qqbar(qqbarto, qqbar, phases, tag.str(),sink_type);
538  compute_qqbar(qqbar, (1<<k), qprop[2],qprop[1],phases,t0 );
539  write_qqbar(qqbarto, qqbar, phases, "bar"+tag.str(),sink_type);
540  }
541  }
542  }
543  }// end num props>2
544  }
545 
546  close(qqqto);
547  close(qqbarto);
548 
549  pop(xml_out); // qqqNucNuc_w
550 
551 
552  snoop.stop();
553  QDPIO::cout << InlineQQQNucNucEnv::name << ": total time = "
554  << snoop.getTimeInSeconds()
555  << " secs" << std::endl;
556 
557  QDPIO::cout << InlineQQQNucNucEnv::name << ": ran successfully" << std::endl;
558 
559  END_CODE();
560  }
561 
562 }
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.
Definition: sftmom.h:35
int numSubsets() const
Number of subsets - length in decay direction.
Definition: sftmom.h:63
int numMom() const
Number of momenta.
Definition: sftmom.h:60
const Set & getSet() const
The set to be used in sumMulti.
Definition: sftmom.h:57
static T & Instance()
Definition: singleton.h:432
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams &param)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams &param)
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.
Definition: qqbar_w.cc:98
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)
Definition: qqq_w.cc:44
void proginfo(XMLWriter &xml)
Print out basic information about this program.
Definition: proginfo.cc:24
std::string makeXMLFileName(std::string xml_file, unsigned long update_no)
Return a xml file name for inline measurements.
int bc_spec
multi1d< int > bc
multi1d< int > t_srce
std::string sink_type
ForwardProp_t prop_header
The QQQ and QQBAR object calculation.
Make xml file writer.
int j_decay
Definition: meslate.cc:22
Nd
Definition: meslate.cc:74
Named object function std::map.
static bool registered
Local registration flag.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
void write_qqbar(QDPFileWriter &to, multi2d< DPropagator > &qqbar, const SftMom &phases, std::string type, std::string sink)
Definition: qqbar_w.cc:220
Real getMass(const GroupXML_t &fermact)
Given a fermion action in std::string form, return the Mass.
Definition: qprop_io.cc:16
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > & Mass
Definition: pbg5p_w.cc:29
push(xml_out,"Condensates")
int i
Definition: pbg5p_w.cc:55
void write_qqq(QDPFileWriter &to, multi2d< ThreeQuarks > &qqq, const SftMom &phases, std::string type, std::string sink)
Definition: qqq_w.cc:200
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.
Definition: qprop_io.cc:61
pop(xml_out)
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
Definition: mesplq.cc:83
DComplex d
Definition: invbicg.cc:99
START_CODE()
int k
Definition: invbicg.cc:119
std::string tag(const std::string &prefix)
Definition: octave.h:15
::std::string string
Definition: gtest.h:1979
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.
struct Chroma::InlineQQQNucNucParams::NamedObject_t named_obj
struct Chroma::InlineQQQNucNucParams::Param_t param
void write(XMLWriter &xml_out, const std::string &path)