CHROMA
inline_multipole_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Inline multipole measurements
4  */
5 
6 #ifndef __inline_multipole_h__
7 #define __inline_multipole_h__
8 
9 #include "chromabase.h"
11 
12 namespace Chroma
13 {
14  /*! \ingroup inlinehadron */
15  namespace InlineMultipoleEnv
16  {
17  extern const std::string name;
18  bool registerAll();
19  }
20 
21  //! Parameter structure
22  /*! \ingroup inlinehadron */
24  {
26  InlineMultipoleParams(XMLReader& xml_in, const std::string& path);
27  void write(XMLWriter& xml, const std::string& path);
28 
29  unsigned long frequency;
30 
31  struct Param_t
32  {
33  int max_L;
34  } param;
35 
36  //! Propagators
38  {
39  std::string seqprop_id; // sequential prop
40  int GammaInsertion; // second gamma insertion
41  };
42 
43  //! Multipole output
45  {
46  std::string gauge_id; /*!< input forward prop */
47  std::string prop_id; /*!< input forward prop */
48  multi1d<NamedObject_t> seqprops;
49  } pole;
50 
51  std::string xml_file; // Alternate XML file pattern
52  };
53 
54  //! Inline measurement of multipole expansion
55  /*! \ingroup inlinehadron */
57  {
58  public:
62 
63  unsigned long getFrequency(void) const {return params.frequency;}
64 
65  //! Do the measurement
66  void operator()(const unsigned long update_no,
67  XMLWriter& xml_out);
68 
69  protected:
70  //! Do the measurement
71  void func(const unsigned long update_no,
72  XMLWriter& xml_out);
73 
74  private:
76  };
77 
78 };
79 
80 #endif
Abstract inline measurements.
Primary include file for CHROMA library code.
Inline measurement of multipole expansion.
InlineMultipole(const InlineMultipole &p)
void func(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
InlineMultipoleParams params
void operator()(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
InlineMultipole(const InlineMultipoleParams &p)
unsigned long getFrequency(void) const
Tell me how often I should measure this beastie.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
::std::string string
Definition: gtest.h:1979
void write(XMLWriter &xml, const std::string &path)
Write params.
struct Chroma::InlineMultipoleParams::Multipole_out_t pole
struct Chroma::InlineMultipoleParams::Param_t param