CHROMA
inline_prop_and_matelem_colorvec_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Compute the perambulators
4  *
5  * Compute propagator elements M^-1 * multi1d<LatticeColorVector>
6  * and the matrix element of LatticeColorVector*M^-1*LatticeColorVector
7  */
8 
9 #ifndef __inline_prop_and_matelem_colorvec_w_h__
10 #define __inline_prop_and_matelem_colorvec_w_h__
11 
12 #include "chromabase.h"
14 #include "io/qprop_io.h"
15 #include "io/xml_group_reader.h"
16 
17 namespace Chroma
18 {
19  /*! \ingroup inlinehadron */
20  namespace InlinePropAndMatElemColorVecEnv
21  {
22  bool registerAll();
23 
24  //! Parameter structure
25  /*! \ingroup inlinehadron */
26  struct Params
27  {
28  Params();
29  Params(XMLReader& xml_in, const std::string& path);
30 
31  unsigned long frequency;
32 
33  struct Param_t
34  {
35  struct Contract_t
36  {
37  int num_vecs; /*!< Number of color vectors to use */
38  int decay_dir; /*!< Decay direction */
39  multi1d<int> t_sources; /*!< Array of time slice sources for props */
40  std::string mass_label; /*!< Some kind of mass label */
41  };
42 
45  };
46 
48  {
49  std::string gauge_id; /*!< Gauge field */
50  std::string colorvec_id; /*!< LatticeColorVector EigenInfo */
51  std::string prop_id; /*!< Output propagator solution id */
52  GroupXML_t prop_obj; /*!< Map for output propagator solutions */
53  std::string prop_op_file; /*!< File name for propagator matrix elements */
54  };
55 
58  std::string xml_file; /*!< Alternate XML file pattern */
59  };
60 
61 
62  //! Inline task for compute LatticeColorVector matrix elements of a propagator
63  /*! \ingroup inlinehadron */
65  {
66  public:
68  InlineMeas(const Params& p) : params(p) {}
70 
71  unsigned long getFrequency(void) const {return params.frequency;}
72 
73  //! Do the measurement
74  void operator()(const unsigned long update_no,
75  XMLWriter& xml_out);
76 
77  protected:
78  //! Do the measurement
79  void func(const unsigned long update_no,
80  XMLWriter& xml_out);
81 
82  private:
84  };
85 
86  } // namespace PropColorVec
87 
88 
89 }
90 
91 #endif
Abstract inline measurements.
Primary include file for CHROMA library code.
Inline task for compute LatticeColorVector matrix elements of a propagator.
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.
unsigned long getFrequency(void) const
Tell me how often I should measure this beastie.
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
Hold group xml and type id.
Read an XML group as a std::string.