CHROMA
simple_quark_displacement.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Simple quark displacement
4  */
5 
6 #ifndef __simple_quark_displacement_h__
7 #define __simple_quark_displacement_h__
8 
11 
12 namespace Chroma
13 {
14  //! Name and registration
15  /*! @ingroup smear */
16  namespace SimpleQuarkDisplacementEnv
17  {
18  bool registerAll();
19 
20  //! Return the name
22 
23 
24  //! Params for simple quark displacement
25  /*! @ingroup smear */
26  struct Params
27  {
28  Params() {}
29  Params(XMLReader& in, const std::string& path);
30  void writeXML(XMLWriter& in, const std::string& path) const;
31 
32  int disp_length; /*!< displacement length */
33  int disp_dir; /*!< x(0), y(1), z(2) */
34  };
35 
36 
37  //! Simple quark displacement
38  /*! @ingroup smear
39  *
40  * Simple quark displacement object
41  */
42  template<typename T>
43  class QuarkDisplace : public QuarkDisplacement<T>
44  {
45  public:
46  //! Full constructor
47  QuarkDisplace(const Params& p) : params(p) {}
48 
49  //! Displace the quark
50  void operator()(T& quark,
51  const multi1d<LatticeColorMatrix>& u,
52  enum PlusMinus isign) const
53  {
54  switch (isign)
55  {
56  case PLUS:
58  break;
59 
60  case MINUS:
62  break;
63 
64  default:
65  QDP_error_exit("illegal isign in QuarkDisplace");
66  }
67  }
68 
69  private:
70  //! Hide partial constructor
72 
73  private:
74  Params params; /*!< displacement params */
75  };
76 
77  } // end namespace
78 
79  //! Reader
80  /*! @ingroup smear */
81  void read(XMLReader& xml, const std::string& path, SimpleQuarkDisplacementEnv::Params& param);
82 
83  //! Writer
84  /*! @ingroup smear */
85  void write(XMLWriter& xml, const std::string& path, const SimpleQuarkDisplacementEnv::Params& param);
86 
87 } // end namespace Chroma
88 
89 #endif
Base class for quark displacement.
void operator()(T &quark, const multi1d< LatticeColorMatrix > &u, enum PlusMinus isign) const
Displace the quark.
Parallel transport a lattice field.
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.
LatticePropagator displacement(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &chi, int length, int dir)
Apply a displacement operator to a lattice field.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::T T
@ MINUS
Definition: chromabase.h:45
@ PLUS
Definition: chromabase.h:45
static QDP_ColorVector * in
::std::string string
Definition: gtest.h:1979
Quark displacement.
Params for simple quark displacement.
void writeXML(XMLWriter &in, const std::string &path) const
Parameters for running code.