CHROMA
wallformfac.cc
Go to the documentation of this file.
1 /*! \file
2  * \brief Main program for computing 3pt functions with a wall sink
3  *
4  * Main program for computing 3pt functions with a wall sink
5  */
6 
7 #include "chroma.h"
8 
9 using namespace Chroma;
10 
11 
12 /*
13  * Input
14  */
15 
16 //! Wall-Formfactor type
18 {
23  WALLFF_NUCL_CT, // this will disappear
26 };
27 
28 
29 struct Prop_t
30 {
33 };
34 
35 
36 // Parameters which must be determined from the XML input
37 // and written to the XML output
38 struct Param_t
39 {
40  int mom2_max; // (mom)^2 <= mom2_max. mom2_max=7 in szin.
41  bool wall_source; // use wall source or wall sink
42 
43  multi1d<WallFormFacType> formfac_type;
44  multi1d<int> nrow;
45 };
46 
48 {
52 };
53 
54 
56 {
60 };
61 
62 
64 {
66 
67  int mom2_max; // (mom)^2 <= mom2_max. mom2_max=7 in szin.
68  bool wall_source; // use wall source or wall sink
69  multi1d<int> nrow;
70 
71  multi1d<WallFormFac_bar_t> bar;
72 };
73 
74 
75 
76 //! Read a Wall-formfactor enum
77 void read(XMLReader& xml, const std::string& path, WallFormFacType& param)
78 {
79  std::string wallff_str;
80  read(xml, path, wallff_str);
81  if (wallff_str == "PION")
82  param = WALLFF_PION;
83  else if (wallff_str == "RHO")
84  param = WALLFF_RHO;
85  else if (wallff_str == "RHO_PI")
86  param = WALLFF_RHO_PI;
87  else if (wallff_str == "NUCL")
88  param = WALLFF_NUCL;
89  else if (wallff_str == "NUCL_CT") // this will disappear
90  param = WALLFF_NUCL_CT;
91  else if (wallff_str == "DELTA")
92  param = WALLFF_DELTA;
93  else if (wallff_str == "DELTA_P")
94  param = WALLFF_DELTA_P;
95  else
96  {
97  QDPIO::cerr << "Unsupported wallformfac type" << std::endl;
98  QDP_abort(1);
99  }
100 }
101 
102 
103 //! Write a Wall-formfactor enum
104 void write(XMLWriter& xml, const std::string& path, const WallFormFacType& param)
105 {
106  std::string wallff_str;
107  if (param == WALLFF_PION)
108  wallff_str = "PION";
109  else if (param == WALLFF_RHO)
110  wallff_str = "RHO";
111  else if (param == WALLFF_RHO_PI)
112  wallff_str = "RHO_PI";
113  else if (param == WALLFF_NUCL)
114  wallff_str = "NUCL";
115  else if (param == WALLFF_NUCL_CT) // this will disappear
116  wallff_str = "NUCL_CT";
117  else if (param == WALLFF_DELTA)
118  wallff_str = "DELTA";
119  else if (param == WALLFF_DELTA_P)
120  wallff_str = "DELTA_P";
121  else
122  {
123  QDPIO::cerr << "Unsupported formfac type" << std::endl;
124  QDP_abort(1);
125  }
126  write(xml, path, wallff_str);
127 }
128 
129 
130 //! Propagator filenames
131 void read(XMLReader& xml, const std::string& path, Prop_t& input)
132 {
133  XMLReader inputtop(xml, path);
134 
135  read(inputtop, "forwprop_file",input.forwprop_file);
136  read(inputtop, "backprop_file",input.backprop_file);
137 }
138 
139 
140 //! Parameter input
141 void read(XMLReader& xml, const std::string& path, Param_t& param)
142 {
143  XMLReader paramtop(xml, path);
144 
145  int version;
146  read(paramtop, "version", version);
147 
148  switch (version)
149  {
150  /**************************************************************************/
151  case 2:
152  param.wall_source = false;
153  break;
154 
155  /**************************************************************************/
156  case 3:
157  read(paramtop, "wall_source", param.wall_source);
158  break;
159 
160  default:
161  /**************************************************************************/
162  QDPIO::cerr << "Input parameter version " << version
163  << " unsupported." << std::endl;
164  QDP_abort(1);
165  }
166 
167  read(paramtop, "mom2_max", param.mom2_max);
168  read(paramtop, "formfac_type", param.formfac_type);
169  read(paramtop, "nrow", param.nrow);
170 }
171 
172 
173 
174 // Reader for input parameters
175 void read(XMLReader& xml, const std::string& path, WallFormFac_input_t& input)
176 {
177  XMLReader inputtop(xml, path);
178 
179  // Read the input
180  try
181  {
182  // Parameters for source construction
183  read(inputtop, "Param", input.param);
184 
185  // Read in the gauge configuration info
186  read(inputtop, "Cfg", input.cfg);
187 
188  // Read in the output propagator/source configuration info
189  read(inputtop, "Prop", input.prop);
190  }
191  catch(const std::string& e)
192  {
193  QDP_error_exit("Error reading in wallformfac: %s", e.c_str());
194  }
195 }
196 
197 
198 //! WallFormFac writer
199 void write(BinaryWriter& bin, const WallFormFac_bar_t& header)
200 {
201  write(bin, header.formfac_value);
202  write(bin, header.formfac_type);
203  write(bin, header.formfacs);
204 }
205 
206 //! WallFormFac writer
207 void write(BinaryWriter& bin, const WallFormFac_output_t& header)
208 {
209  write(bin, header.out_version);
210  write(bin, header.mom2_max);
211  write(bin, header.wall_source);
212  write(bin, header.nrow);
213  write(bin, header.bar);
214 }
215 
216 
217 
218 //! Main program for computing 3pt functions
219 /*! \defgroup bar3ptfnmain Computing 3pt functions
220  * \ingroup main
221  *
222  * Main program for computing 3pt functions
223  */
224 
225 int main(int argc, char *argv[])
226 {
227  // Something breaks in this test unless Nc=3
228 #if QDP_NC == 3
229 
230  // Put the machine into a known state
231  Chroma::initialize(&argc, &argv);
232 
233  START_CODE();
234 
235  // Input parameter structure
236  WallFormFac_input_t input;
237 
238  // Instantiate xml reader for DATA
239  XMLReader xml_in(Chroma::getXMLInputFileName());
240 
241  // Read data
242  read(xml_in, "/WallFormFac", input);
243 
244  // Specify lattice size, shape, etc.
245  Layout::setLattSize(input.param.nrow);
246  Layout::create();
247 
248  QDPIO::cout << " WALLFORMFAC: Form factors for Wilson-like fermions" << std::endl;
249  QDPIO::cout << std::endl << " Gauge group: SU(" << Nc << ")" << std::endl;
250  QDPIO::cout << " volume: " << input.param.nrow[0];
251  for (int i=1; i<Nd; ++i) {
252  QDPIO::cout << " x " << input.param.nrow[i];
253  }
254  QDPIO::cout << std::endl;
255 
256  // Read in the configuration along with relevant information.
257  QDPIO::cout << "Attempt to initialize the gauge field" << std::endl;
258 
259  multi1d<LatticeColorMatrix> u(Nd);
260  XMLReader gauge_file_xml, gauge_xml;
261 
262  // Startup gauge
263  gaugeStartup(gauge_file_xml, gauge_xml, u, input.cfg);
264 
265  // Next check the gauge field configuration by reunitarizing.
266  unitarityCheck(u);
267 
268  QDPIO::cout << "Gauge field successfully initialized" << std::endl;
269 
270 
271  // Instantiate XML writer for XMLDAT
272  XMLFileWriter& xml_out = Chroma::getXMLOutputInstance();
273 
274  push(xml_out, "wallFormFac");
275 
276  proginfo(xml_out); // Print out basic program info
277 
278  // Write out the input
279  write(xml_out, "Input", xml_in);
280 
281  // Write out the config info
282  write(xml_out, "Config_info", gauge_xml);
283 
284  push(xml_out, "Output_version");
285  write(xml_out, "out_version", 4);
286  pop(xml_out);
287 
288  // First calculate some gauge invariant observables just for info.
289  MesPlq(xml_out, "Observables", u);
290  xml_out.flush();
291 
292  /*
293  * Read the quark propagator and extract headers
294  */
295  // Read the forward prop
296  XMLReader forwprop_file_xml, forwprop_record_xml;
297  LatticePropagator forward_quark_prop;
298  ChromaProp_t forward_prop_header;
299  PropSourceConst_t forward_source_header;
300  {
301  QDPIO::cout << "Attempt to read forward propagator" << std::endl;
302  readQprop(forwprop_file_xml,
303  forwprop_record_xml, forward_quark_prop,
304  input.prop.forwprop_file, QDPIO_SERIAL);
305  QDPIO::cout << "Forward propagator successfully read" << std::endl;
306 
307  // Try to invert this record XML into a ChromaProp struct
308  // Also pull out the id of this source
309  try
310  {
311  read(forwprop_record_xml, "/Propagator/ForwardProp", forward_prop_header);
312  read(forwprop_record_xml, "/Propagator/PropSource", forward_source_header);
313  }
314  catch (const std::string& e)
315  {
316  QDPIO::cerr << "Error extracting forward_prop header: " << e << std::endl;
317  throw;
318  }
319  }
320 
321  // Sanity check
322  if (input.param.wall_source && forward_source_header.source.id != "WALL_SOURCE")
323  {
324  QDPIO::cerr << "Wallformfac: wall_source flag set but not a wall source forward prop" << std::endl;
325  QDP_abort(1);
326  }
327 
328  // Derived from input prop
329  int j_decay = forward_source_header.j_decay;
330  int t_source = forward_source_header.t_source;
331 
332  // Sanity check - write out the norm2 of the forward prop in the j_decay direction
333  // Use this for any possible verification
334  {
335  // Initialize the slow Fourier transform phases
336  SftMom phases(0, true, j_decay);
337 
338  multi1d<Double> forward_prop_corr = sumMulti(localNorm2(forward_quark_prop),
339  phases.getSet());
340 
341  push(xml_out, "Forward_prop_correlator");
342  write(xml_out, "forward_prop_corr", forward_prop_corr);
343  pop(xml_out);
344  }
345 
346  // Save forward prop input
347  push(xml_out, "ForwardPropHeaders");
348  write(xml_out, "ForwardProp", forward_prop_header);
349  write(xml_out, "PropSource", forward_source_header);
350  pop(xml_out);
351 
352 
353  // Read the backward propagator
354  XMLReader backprop_file_xml, backprop_record_xml;
355  LatticePropagator backward_quark_prop;
356  ChromaProp_t backward_prop_header;
357  PropSourceConst_t backward_source_header;
358  {
359  QDPIO::cout << "Attempt to read backward propagator" << std::endl;
360  readQprop(backprop_file_xml,
361  backprop_record_xml, backward_quark_prop,
362  input.prop.backprop_file, QDPIO_SERIAL);
363 
364  // Try to invert this record XML into a ChromaProp struct
365  // Also pull out the id of this source
366  try
367  {
368  read(backprop_record_xml, "/Propagator/ForwardProp", backward_prop_header);
369  read(backprop_record_xml, "/Propagator/PropSource", backward_source_header);
370  }
371  catch (const std::string& e)
372  {
373  QDPIO::cerr << "Error extracting backward_prop header: " << e << std::endl;
374  throw;
375  }
376  }
377  QDPIO::cout << "Backward propagator successfully read" << std::endl;
378 
379  // Sanity check
380  if (! input.param.wall_source && backward_source_header.source.id != "WALL_SOURCE")
381  {
382  QDPIO::cerr << "Wallformfac: wall_source flag false but not a wall source backward prop" << std::endl;
383  QDP_abort(1);
384  }
385 
386  // Derived from input prop
387  int t_sink = backward_source_header.t_source;
388 
389  // Sanity check - write out the norm2 of the backward prop in the j_decay direction
390  // Use this for any possible verification
391  {
392  // Initialize the slow Fourier transform phases
393  SftMom phases(0, true, j_decay);
394 
395  multi1d<Double> backward_prop_corr = sumMulti(localNorm2(backward_quark_prop),
396  phases.getSet());
397 
398  push(xml_out, "Backward_prop_correlator");
399  write(xml_out, "backward_prop_corr", backward_prop_corr);
400  pop(xml_out);
401  }
402 
403  // Save backward prop input
404  push(xml_out, "BackwardPropHeaders");
405  write(xml_out, "ForwardProp", backward_prop_header);
406  write(xml_out, "PropSource", backward_source_header);
407  pop(xml_out);
408 
409 
410 #if 0
411  /*
412  * Construct fermionic BC.
413  * The BC is used to modify the U fields used for the CONSERVERED currents
414  * within the formfac routines
415  */
416  {
417  SimpleFermBC<LatticeFermion> fbc(forward_prop_header.boundary);
418  fbc.modifyU(u); // modify the U fields
419  }
420 #endif
421 
422 
423  // Phase factors
424  SftMom phases(input.param.mom2_max, false, j_decay);
425 
426 
427  /*
428  * Construct the forward propagator evaluated at the sink.
429  * In the case of wall-sinks, simply wall-sink smear. This is a slice-sum.
430  * For a wall-source, then use the smearing of the backward
431  * sink propagator and apply it to the forward propagator. In this
432  * latter case, one evaluates the smeared prop at the sink location.
433  */
434  Propagator forward_quark_x2;
435 
436  if (input.param.wall_source)
437  {
438  // Source is a wall, so sink smear according to what was
439  // used for the backward prop
440  LatticePropagator forward_quark_tmp = forward_quark_prop;
441 
442  // Sink smear the propagator
443  try
444  {
445  std::istringstream xml_s(backward_source_header.source.xml);
446  XMLReader sinktop(xml_s);
447  QDPIO::cout << "Source = " << backward_source_header.source.id << std::endl;
448 
450  sinkSmearing(ThePropSinkSmearingFactory::Instance().createObject(backward_source_header.source.id,
451  sinktop,
452  backward_source_header.source.path,
453  u));
454  (*sinkSmearing)(forward_quark_tmp);
455  }
456  catch(const std::string& e)
457  {
458  QDPIO::cerr << "wallformfac: Caught Exception creating sink smear: " << e << std::endl;
459  QDP_abort(1);
460  }
461 
462 #if 0
463  // OLD code - just for reference
464  if (backward_source_header.source.id == "SHELL_SOURCE")
465  {
466  sink_smear2(u, forward_quark_tmp,
467  backward_source_header.sourceSmearParam.wvf_kind,
468  backward_source_header.sourceSmearParam.wvf_param,
469  backward_source_header.sourceSmearParam.wvfIntPar,
470  j_decay);
471  }
472 #endif
473 
474  // Grab the smeared forward prop at the sink location
475  multi1d<int> t_snk = backward_source_header.getTSrce();
476  forward_quark_x2 = peekSite(forward_quark_tmp, t_snk);
477  }
478  else
479  {
480  // Sink is a wall
481  // Project forward propagator onto zero momentum: Do a slice-wise sum.
482  forward_quark_x2 = sum(forward_quark_prop, phases.getSet()[t_sink]);
483  }
484 
485 
486  //
487  // Big nested structure that is image of entire file
488  //
490  form.bar.resize(input.param.formfac_type.size());
491 
492  form.out_version = 4; // bump this up everytime something changes
493  form.nrow = input.param.nrow;
494  form.mom2_max = input.param.mom2_max;
495  form.wall_source = input.param.wall_source;
496 
497  multi1d<std::string> wallformfac_names(7);
498  wallformfac_names[0] = "PION";
499  wallformfac_names[1] = "RHO";
500  wallformfac_names[2] = "RHO_PI";
501  wallformfac_names[3] = "NUCL";
502  wallformfac_names[4] = "NUCL_CT";
503  wallformfac_names[5] = "DELTA";
504  wallformfac_names[6] = "DELTA_P";
505 
506 
507  //
508  // Now the 3pt contractions
509  //
510  XMLArrayWriter xml_seq_src(xml_out, input.param.formfac_type.size());
511  push(xml_seq_src, "Wilson_3Pt_fn_measurements");
512 
513  QDPIO::cout << "Looping over " << input.param.formfac_type.size()
514  << " kinds of form-factors" << std::endl;
515 
516  // Loop over types of form-factor
517  for (int formfac_ctr = 0; formfac_ctr < input.param.formfac_type.size(); ++formfac_ctr)
518  {
519  WallFormFacType formfac_type = input.param.formfac_type[formfac_ctr];
520  int formfac_value = int(formfac_type);
521 
522  push(xml_seq_src);
523  write(xml_seq_src, "formfac_ctr", formfac_ctr);
524  write(xml_seq_src, "formfac_value", formfac_value);
525  write(xml_seq_src, "formfac_type", formfac_type);
526 
527  form.bar[formfac_ctr].formfac_value = formfac_value;
528  form.bar[formfac_ctr].formfac_type = wallformfac_names[formfac_value];
529 
530  QDPIO::cout << "Measurements for formfac_value = " << formfac_value << std::endl;
531 
532  switch (formfac_type)
533  {
534  case WALLFF_PION:
535  wallPionFormFac(form.bar[formfac_ctr].formfacs,
536  u,
537  forward_quark_prop, backward_quark_prop,
538  forward_quark_prop, backward_quark_prop,
539  forward_quark_x2, forward_quark_x2,
540  phases,
541  t_source, input.param.wall_source);
542  break;
543 
544  case WALLFF_NUCL:
545  wallNuclFormFac(form.bar[formfac_ctr].formfacs,
546  u,
547  forward_quark_prop, backward_quark_prop,
548  forward_quark_prop, backward_quark_prop,
549  forward_quark_x2, forward_quark_x2,
550  phases,
551  t_source, input.param.wall_source);
552  break;
553 
554 #if 0
555  case WALLFF_NUCL_CT:
556  {
557  /* Time-charge reverse the quark propagators */
558  /* S_{CT} = gamma_5 gamma_4 = gamma_1 gamma_2 gamma_3 = Gamma(7) */
559  LatticePropagator qf_tmp = - (Gamma(7) * forward_quark_prop * Gamma(7));
560  LatticePropagator qb_tmp = - (Gamma(7) * backward_quark_prop * Gamma(7));
561 
562  wallNuclFormFac(form.bar[formfac_ctr].formfacs,
563  u,
564  qf_tmp, qb_tmp,
565  qf_tmp, qb_tmp,
566  forward_quark_x2, forward_quark_x2,
567  phases,
568  t_source, input.param.wall_source);
569  }
570  break;
571 #endif
572 
573  case WALLFF_DELTA:
574  wallDeltaFormFac(form.bar[formfac_ctr].formfacs,
575  u,
576  forward_quark_prop, backward_quark_prop,
577  forward_quark_prop, backward_quark_prop,
578  forward_quark_x2, forward_quark_x2,
579  phases,
580  t_source, input.param.wall_source);
581  break;
582 
583  case WALLFF_DELTA_P:
584  wallDeltaPFormFac(form.bar[formfac_ctr].formfacs,
585  u,
586  forward_quark_prop, backward_quark_prop,
587  forward_quark_prop, backward_quark_prop,
588  forward_quark_x2, forward_quark_x2,
589  phases,
590  t_source, input.param.wall_source);
591  break;
592 
593  case WALLFF_RHO:
594  wallRhoFormFac(form.bar[formfac_ctr].formfacs,
595  u,
596  forward_quark_prop, backward_quark_prop,
597  forward_quark_prop, backward_quark_prop,
598  forward_quark_x2, forward_quark_x2,
599  phases,
600  t_source, input.param.wall_source);
601  break;
602 
603  case WALLFF_RHO_PI:
604  wallRhoPiFormFac(form.bar[formfac_ctr].formfacs,
605  u,
606  forward_quark_prop, backward_quark_prop,
607  forward_quark_prop, backward_quark_prop,
608  forward_quark_x2, forward_quark_x2,
609  phases,
610  t_source, input.param.wall_source);
611  break;
612 
613  default:
614  QDPIO::cerr << "Unknown value of formfac_ctr " << formfac_ctr << std::endl;
615  QDP_abort(1);
616  }
617 
618  pop(xml_seq_src); // elem
619  } // end loop over formfac_ctr
620 
621  pop(xml_seq_src); // Wilson_3Pt_fn_measurements
622 
623  // Close the output file XMLDAT
624  pop(xml_out); // wallFormFac
625 
626  // Dump binary output
627  BinaryFileWriter bin_out("wallformfac.dat");
628  write(bin_out, form);
629  bin_out.close();
630 
631  END_CODE();
632 
633  // Time to bolt
635 
636 #endif
637 
638  exit(0);
639 }
Primary include file for CHROMA in application codes.
Class for counted reference semantics.
Definition: handle.h:33
Fourier transform phase factor support.
Definition: sftmom.h:35
const Set & getSet() const
The set to be used in sumMulti.
Definition: sftmom.h:57
Concrete class for all gauge actions with simple boundary conditions.
Definition: simple_fermbc.h:42
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 unitarityCheck(const multi1d< LatticeColorMatrixF3 > &u)
Check the unitarity of color matrix in SU(N)
Definition: unit_check.cc:20
void gaugeStartup(XMLReader &gauge_file_xml, XMLReader &gauge_xml, multi1d< LatticeColorMatrix > &u, Cfg_t &cfg)
Initialize the gauge fields.
void wallRhoPiFormFac(WallFormFac_formfacs_t &form, const multi1d< LatticeColorMatrix > &u, const LatticePropagator &forw_u_prop, const LatticePropagator &back_u_prop, const LatticePropagator &forw_d_prop, const LatticePropagator &back_d_prop, const Propagator &u_x2, const Propagator &d_x2, const SftMom &phases, int t0, bool wall_source)
Wall-sink rho^+ <-> gamma+pi^+ form-factors.
void wallPionFormFac(WallFormFac_formfacs_t &form, const multi1d< LatticeColorMatrix > &u, const LatticePropagator &forw_u_prop, const LatticePropagator &back_u_prop, const LatticePropagator &forw_d_prop, const LatticePropagator &back_d_prop, const Propagator &u_x2, const Propagator &d_x2, const SftMom &phases, int t0, bool wall_source)
Compute contractions for current insertion 3-point functions.
Definition: wallpionff_w.cc:31
void wallDeltaPFormFac(WallFormFac_formfacs_t &form, const multi1d< LatticeColorMatrix > &u, const LatticePropagator &forw_u_prop, const LatticePropagator &back_u_prop, const LatticePropagator &forw_d_prop, const LatticePropagator &back_d_prop, const Propagator &u_x2, const Propagator &d_x2, const SftMom &phases, int t0, bool wall_source)
Wall-sink delta <-> gamma+delta form-factors.
void wallDeltaFormFac(WallFormFac_formfacs_t &form, const multi1d< LatticeColorMatrix > &u, const LatticePropagator &forw_u_prop, const LatticePropagator &back_u_prop, const LatticePropagator &forw_d_prop, const LatticePropagator &back_d_prop, const Propagator &u_x2, const Propagator &d_x2, const SftMom &phases, int t0, bool wall_source)
Wall-sink delta-> gamma+delta form-factors.
void wallNuclFormFac(WallFormFac_formfacs_t &form, const multi1d< LatticeColorMatrix > &u, const LatticePropagator &forw_u_prop, const LatticePropagator &back_u_prop, const LatticePropagator &forw_d_prop, const LatticePropagator &back_d_prop, const Propagator &u_x2, const Propagator &d_x2, const SftMom &phases, int t0, bool wall_source)
Wall-sink nucleon-> gamma+nucleon form-factors.
void wallRhoFormFac(WallFormFac_formfacs_t &form, const multi1d< LatticeColorMatrix > &u, const LatticePropagator &forw_u_prop, const LatticePropagator &back_u_prop, const LatticePropagator &forw_d_prop, const LatticePropagator &back_d_prop, const Propagator &u_x2, const Propagator &d_x2, const SftMom &phases, int t0, bool wall_source)
Wall-sink rho-> gamma+rho form-factors.
Definition: wallrhoff_w.cc:32
void proginfo(XMLWriter &xml)
Print out basic information about this program.
Definition: proginfo.cc:24
int j_decay
Definition: meslate.cc:22
Nd
Definition: meslate.cc:74
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
int i
Definition: pbg5p_w.cc:55
void initialize(int *argc, char ***argv)
Chroma initialisation routine.
Definition: chroma_init.cc:114
void finalize(void)
Chroma finalization routine.
Definition: chroma_init.cc:308
void readQprop(XMLReader &file_xml, XMLReader &record_xml, LatticePropagator &quark_prop, const std::string &file, QDP_serialparallel_t serpar)
Read a Chroma propagator.
Definition: qprop_io.cc:1573
std::string getXMLInputFileName()
Get input file name.
Definition: chroma_init.cc:88
pop(xml_out)
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
Definition: mesplq.cc:83
START_CODE()
XMLFileWriter & getXMLOutputInstance()
Get xml output instance.
Definition: chroma_init.cc:359
::std::string string
Definition: gtest.h:1979
Double sum
Definition: qtopcor.cc:37
Gauge configuration structure.
Definition: cfgtype_io.h:16
Propagator parameters.
Definition: qprop_io.h:75
Propagator source construction parameters.
Definition: qprop_io.h:27
multi1d< int > getTSrce() const
Definition: qprop_io.cc:120
Parameters for running program.
Definition: qpropadd.cc:17
bool wall_source
Definition: wallformfac.cc:41
multi1d< WallFormFacType > formfac_type
Definition: wallformfac.cc:43
multi1d< int > nrow
Definition: qpropadd.cc:18
int mom2_max
Definition: wallformfac.cc:40
Propagators.
std::string backprop_file
Definition: wallformfac.cc:32
std::string forwprop_file
Definition: wallformfac.cc:31
std::string formfac_type
Definition: wallformfac.cc:58
WallFormFac_formfacs_t formfacs
Definition: wallformfac.cc:59
multi1d< int > nrow
Definition: wallformfac.cc:69
multi1d< WallFormFac_bar_t > bar
Definition: wallformfac.cc:71
int main(int argc, char *argv[])
Definition: wallformfac.cc:225
WallFormFacType
Wall-Formfactor type.
Definition: wallformfac.cc:18
@ WALLFF_PION
Definition: wallformfac.cc:19
@ WALLFF_NUCL_CT
Definition: wallformfac.cc:23
@ WALLFF_DELTA
Definition: wallformfac.cc:24
@ WALLFF_RHO
Definition: wallformfac.cc:20
@ WALLFF_NUCL
Definition: wallformfac.cc:22
@ WALLFF_DELTA_P
Definition: wallformfac.cc:25
@ WALLFF_RHO_PI
Definition: wallformfac.cc:21