CHROMA
inline_matelem_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_matelem_distillation_w_h__
9 #define __inline_matelem_distillation_w_h__
10 
11 #ifndef QDP_IS_QDPJIT_NO_NVPTX
12 
13 #include "chromabase.h"
15 #include "io/qprop_io.h"
16 #include "io/xml_group_reader.h"
17 
18 namespace Chroma
19 {
20  /*! \ingroup inlinehadron */
21  namespace InlineMatElemDistillationEnv
22  {
23  bool registerAll();
24 
25  //! Parameter structure
26  /*! \ingroup inlinehadron */
27  struct Params
28  {
29  Params();
30  Params(XMLReader& xml_in, const std::string& path);
31 
32  unsigned long frequency;
33 
34  struct Param_t
35  {
36  struct Contract_t
37  {
38  int num_vecs; /*!< Number of color vectors to use */
39  int lt_orig; /*!< Number of color vectors to use */
40  int t_offset; /*!< Number of color vectors to use */
41  int decay_dir; /*!< Decay direction */
42  multi1d<int> t_sources; /*!< Array of time slice sources for props */
43  int Nt_forward; /*!< Time-slices in the forward direction */
44  int Nt_backward; /*!< Time-slices in the backward direction */
45  std::string mass_label; /*!< Some kind of mass label */
46 
49  };
50 
52  };
53 
55  {
56  std::vector<std::string> colorvec_files; /*!< Eigenvectors in mod format */
57  std::string prop_file; /*!< File name for propagator matrix elements */
58  std::string peram_file; /*!< File name for propagator matrix elements */
59  };
60 
63  std::string xml_file; /*!< Alternate XML file pattern */
64  };
65 
66 
67  //! Inline task for the propagator from distillation
68  /*! \ingroup inlinehadron */
70  {
71  public:
73  InlineMeas(const Params& p) : params(p) {}
75 
76  unsigned long getFrequency(void) const {return params.frequency;}
77 
78  //! Do the measurement
79  void operator()(const unsigned long update_no,
80  XMLWriter& xml_out);
81 
82  protected:
83  //! Do the measurement
84  void func(const unsigned long update_no,
85  XMLWriter& xml_out);
86 
87  private:
89  };
90 
91  } // namespace PropColorVec
92 
93 
94 }
95 
96 #endif // QDPJIT
97 
98 #endif // Chroma
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.
Read an XML group as a std::string.