CHROMA
inline_annih_prop_matelem_colorvec_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Compute the annihilation diagram propagator elements M^-1 * multi1d<LatticeColorVector>
4  *
5  * Annihilation diagrams version of propagator calculation on a colorstd::vector
6  */
7 
8 #ifndef __inline_annih_prop_matelem_colorvec_w_h__
9 #define __inline_annih_prop_matelem_colorvec_w_h__
10 
11 #include "chromabase.h"
13 #include "io/qprop_io.h"
14 
15 namespace Chroma
16 {
17  /*! \ingroup inlinehadron */
18  namespace InlineAnnihPropMatElemColorVecEnv
19  {
20  bool registerAll();
21 
22  //! Parameter structure
23  /*! \ingroup inlinehadron */
24  struct Params
25  {
26  Params();
27  Params(XMLReader& xml_in, const std::string& path);
28 
29  unsigned long frequency;
30 
31  struct Param_t
32  {
33  struct Contract_t
34  {
35  int num_vecs; /*!< Number of color vectors to use */
36  int decay_dir; /*!< Decay direction */
37  int dt; /*!< Separation of sources */
38  multi1d<int> t_sources_start; /*!< Starting location for diluted time sources */
39  int N; /*!< N in Z(N) source */
40  Seed ran_seed; /*!< RNG seed for this source */
41  std::string mass_label; /*!< Some kind of mass label */
42  };
43 
44  Contract_t contract; /*!< Contraction parameters*/
45  ChromaProp_t prop; /*!< Parameters for prop solutions */
46  };
47 
49  {
50  std::string gauge_id; /*!< Gauge field */
51  std::string colorvec_id; /*!< LatticeColorVector EigenInfo */
52  std::string prop_op_file; /*!< File name for propagator matrix elements */
53  };
54 
55  Param_t param; /*!< Parameters */
56  NamedObject_t named_obj; /*!< Input and output objects */
57  std::string xml_file; /*!< Alternate XML file pattern */
58  };
59 
60 
61  //! Inline task for compute LatticeColorVector matrix elements of a propagator
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 compute LatticeColorVector matrix elements of a propagator.
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.
void operator()(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
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