CHROMA
inline_prop_distillation_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Compute the propagator from distillation
4  *
5  * Propagator calculation in distillation
6  */
7 
8 #ifndef __inline_prop_distillation_w_h__
9 #define __inline_prop_distillation_w_h__
10 
11 #include "chromabase.h"
13 #include "io/qprop_io.h"
14 #include "io/xml_group_reader.h"
15 
16 namespace Chroma
17 {
18  /*! \ingroup inlinehadron */
19  namespace InlinePropDistillationEnv
20  {
21  bool registerAll();
22 
23  //! Parameter structure
24  /*! \ingroup inlinehadron */
25  struct Params
26  {
27  Params();
28  Params(XMLReader& xml_in, const std::string& path);
29 
30  unsigned long frequency;
31 
32  struct Param_t
33  {
34  struct Contract_t
35  {
36  int num_vecs; /*!< Number of color vectors to use */
37  int decay_dir; /*!< Decay direction */
38  multi1d<int> t_sources; /*!< Array of time slice sources for props */
39  int Nt_forward; /*!< Time-slices in the forward direction */
40  int Nt_backward; /*!< Time-slices in the backward direction */
41  std::string mass_label; /*!< Some kind of mass label */
42  };
43 
46  };
47 
49  {
50  std::string gauge_id; /*!< Gauge field */
51  std::vector<std::string> colorvec_files; /*!< File output propagator sources */
52  std::string soln_file; /*!< File output propagator solutions */
53  };
54 
57  std::string xml_file; /*!< Alternate XML file pattern */
58  };
59 
60 
61  //! Inline task for the propagator from distillation
62  /*! \ingroup inlinehadron */
64  {
65  public:
67  InlineMeas(const Params& p) : params(p) {}
69 
70  unsigned long getFrequency(void) const {return params.frequency;}
71 
72  //! Do the measurement
73  void operator()(const unsigned long update_no,
74  XMLWriter& xml_out);
75 
76  protected:
77  //! Do the measurement
78  void func(const unsigned long update_no,
79  XMLWriter& xml_out);
80 
81  private:
83  };
84 
85  } // namespace PropColorVec
86 
87 
88 }
89 
90 #endif
Abstract inline measurements.
Primary include file for CHROMA library code.
Inline task for the propagator from distillation.
unsigned long getFrequency(void) const
Tell me how often I should measure this beastie.
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.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
::std::string string
Definition: gtest.h:1979
Routines associated with Chroma propagator IO.
Propagator parameters.
Definition: qprop_io.h:75
Read an XML group as a std::string.