CHROMA
inline_prop_and_matelem_distillation2_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_and_matelem_distillation2_w_h__
9 #define __inline_prop_and_matelem_distillation2_w_h__
10 
11 #ifndef QDP_IS_QDPJIT
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 InlinePropAndMatElemDistillation2Env
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 decay_dir; /*!< Decay direction */
40  multi1d<int> t_sources; /*!< Array of time slice sources for props */
41  int Nt_forward; /*!< Time-slices in the forward direction */
42  int Nt_backward; /*!< Time-slices in the backward direction */
43  std::string mass_label; /*!< Some kind of mass label */
44  multi1d<int> src_spins;
45 
46  int num_tries; /*!< In case of bad things happening in the solution vectors, do retries */
47  };
48 
51  };
52 
54  {
55  std::string gauge_id; /*!< Gauge field */
56  std::vector<std::string> colorvec_files; /*!< Eigenvectors in mod format */
57  std::string prop_op_file; /*!< File name for propagator matrix elements */
58  };
59 
62  std::string xml_file; /*!< Alternate XML file pattern */
63  };
64 
65 
66  //! Inline task for the propagator from distillation
67  /*! \ingroup inlinehadron */
69  {
70  public:
72  InlineMeas(const Params& p) : params(p) {}
74 
75  unsigned long getFrequency(void) const {return params.frequency;}
76 
77  //! Do the measurement
78  void operator()(const unsigned long update_no,
79  XMLWriter& xml_out);
80 
81  protected:
82  //! Do the measurement
83  void func(const unsigned long update_no,
84  XMLWriter& xml_out);
85 
86  private:
88  };
89 
90  } // namespace PropColorVec
91 
92 
93 }
94 
95 #endif // QDPJIT
96 
97 #endif // Chroma
Abstract inline measurements.
Primary include file for CHROMA library code.
void func(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
void operator()(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
Read an XML group as a std::string.