CHROMA
quark_flavor_s.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Staggered Flavor operators
4  *
5  *
6  */
7 
8 #ifndef __quark_flavor_s_h__
9 #define __quark_flavor_s_h__
10 
13 
14 namespace Chroma
15 {
16  using namespace StaggeredFlavorOperators;
17 
18  //! Name and registration
19  /*! @ingroup smear */
20  namespace StaggeredQuarkFlavorOpEnv
21  {
22  bool registerAll();
23 
24 
25  //! Params for derivative quark displacement
26  /*! @ingroup smear */
27  struct Params
28  {
29  Params();
30  Params(XMLReader& in, const std::string& path);
31  void writeXML(XMLWriter& in, const std::string& path) const;
32 
33  std::string FlavorOp; /*! flavor operator type */
34  };
35 
37  {
39  ParamsOneIndex(XMLReader& in, const std::string& path);
40  void writeXML(XMLWriter& in, const std::string& path) const;
41 
42  std::string FlavorOp; /*! flavor operator type */
43  int mu ; /*! flavor operator indices */
44  };
45 
47  {
49  ParamsTwoIndex(XMLReader& in, const std::string& path);
50  void writeXML(XMLWriter& in, const std::string& path) const;
51 
52  std::string FlavorOp; /*! flavor operator type */
53  int mu ; /*! flavor operator indices */
54  int nu ; /*! flavor operator indices */
55  };
56 
57  //! Construct staggered scalar flavored sources
58  /*!
59  * \ingroup sources
60  *
61  */
62  template<typename T>
64  {
65  public:
66  //! Full constructor
68 
69  //! Displace the quark
70  void operator()(T& quark,
71  const multi1d<LatticeColorMatrix>& u,
72  enum PlusMinus isign ) const;
73 
74  private:
75  Params params; /*!< source params */
76  };
77 
78  //! Construct staggered pseudo scalar flavored sources
79  /*!
80  * \ingroup sources
81  *
82  */
83  template<typename T>
85  {
86  public:
87  //! Full constructor
89 
90  //! Displace the quark
91  void operator()(T& quark,
92  const multi1d<LatticeColorMatrix>& u,
93  enum PlusMinus isign ) const;
94 
95  private:
96  Params params; /*!< source params */
97  };
98 
99  //! Construct staggered std::vector flavored sources
100  /*!
101  * \ingroup sources
102  *
103  */
104  template<typename T>
106  {
107  public:
108  //! Full constructor
110 
111  //! Displace the quark
112  void operator()(T& quark,
113  const multi1d<LatticeColorMatrix>& u,
114  enum PlusMinus isign ) const;
115 
116  private:
117  ParamsOneIndex params; /*!< source params */
118  };
119 
120  //! Construct staggered axial std::vector flavored sources
121  /*!
122  * \ingroup sources
123  *
124  */
125  template<typename T>
127  {
128  public:
129  //! Full constructor
131 
132  //! Displace the quark
133  void operator()(T& quark,
134  const multi1d<LatticeColorMatrix>& u,
135  enum PlusMinus isign ) const;
136 
137  private:
138  ParamsOneIndex params; /*!< source params */
139  };
140 
141  //! Construct tensor flavored sources
142  /*!
143  * \ingroup sources
144  *
145  */
146  template<typename T>
148  {
149  public:
150  //! Full constructor
152 
153  //! Displace the quark
154  void operator()(T& quark,
155  const multi1d<LatticeColorMatrix>& u,
156  enum PlusMinus isign ) const;
157 
158  private:
159  ParamsTwoIndex params; /*!< source params */
160  };
161 
162 
163  } // end namespace
164 
165 
166  //! Reader
167  /*! @ingroup sources */
168  void read(XMLReader& xml, const std::string& path, StaggeredQuarkFlavorOpEnv::Params& param);
169 
170  //! Writer
171  /*! @ingroup sources */
172  void write(XMLWriter& xml, const std::string& path, const StaggeredQuarkFlavorOpEnv::Params& param);
173 
174 
175  //! Reader
176  /*! @ingroup sources */
177  void read(XMLReader& xml, const std::string& path, StaggeredQuarkFlavorOpEnv::ParamsTwoIndex& param);
178 
179  //! Writer
180  /*! @ingroup sources */
181  void write(XMLWriter& xml, const std::string& path, const StaggeredQuarkFlavorOpEnv::ParamsTwoIndex& param);
182 
183 
184  //! Reader
185  /*! @ingroup sources */
186  void read(XMLReader& xml, const std::string& path, StaggeredQuarkFlavorOpEnv::ParamsOneIndex& param);
187 
188  //! Writer
189  /*! @ingroup sources */
190  void write(XMLWriter& xml, const std::string& path, const StaggeredQuarkFlavorOpEnv::ParamsOneIndex& param);
191 
192 
193 
194 } // end namespace Chroma
195 
196 #endif
Base class for quark displacement.
Construct staggered axial std::vector flavored sources.
StaggeredAxialVectorOp(const ParamsOneIndex &p)
Full constructor.
void operator()(T &quark, const multi1d< LatticeColorMatrix > &u, enum PlusMinus isign) const
Displace the quark.
Construct staggered pseudo scalar flavored sources.
StaggeredPseudoScalarOp(const Params &p)
Full constructor.
void operator()(T &quark, const multi1d< LatticeColorMatrix > &u, enum PlusMinus isign) const
Displace the quark.
Construct staggered scalar flavored sources.
void operator()(T &quark, const multi1d< LatticeColorMatrix > &u, enum PlusMinus isign) const
Displace the quark.
StaggeredScalarOp(const Params &p)
Full constructor.
StaggeredTensorOp(const ParamsTwoIndex &p)
Full constructor.
void operator()(T &quark, const multi1d< LatticeColorMatrix > &u, enum PlusMinus isign) const
Displace the quark.
Construct staggered std::vector flavored sources.
StaggeredVectorOp(const ParamsOneIndex &p)
Full constructor.
void operator()(T &quark, const multi1d< LatticeColorMatrix > &u, enum PlusMinus isign) const
Displace the quark.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams &param)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams &param)
Writer parameters.
Params params
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::T T
static QDP_ColorVector * in
::std::string string
Definition: gtest.h:1979
Quark displacement.
Staggered operators.
Params for derivative quark displacement.