CHROMA
gamma_displacement_w.cc
Go to the documentation of this file.
1 /*! \file
2  * \brief Gamma insertion/displacement
3  */
4 
5 #include "chromabase.h"
6 
9 
10 namespace Chroma
11 {
12 
13  // Read parameters
14  void read(XMLReader& xml, const std::string& path, GammaDisplacementEnv::Params& param)
15  {
17  param = tmp;
18  }
19 
20  //! Parameters for running code
21  void write(XMLWriter& xml, const std::string& path, const GammaDisplacementEnv::Params& param)
22  {
23  param.writeXML(xml, path);
24  }
25 
26 
27  //! Hooks to register the class
28  namespace GammaDisplacementEnv
29  {
30  namespace
31  {
32  //! Callback function
33  QuarkDisplacement<LatticePropagator>* createProp(XMLReader& xml_in,
34  const std::string& path)
35  {
36  return new QuarkDisplace<LatticePropagator>(Params(xml_in, path));
37  }
38 
39  //! Callback function
41  const std::string& path)
42  {
43  return new QuarkDisplace<LatticeFermion>(Params(xml_in, path));
44  }
45 
46  //! Local registration flag
47  bool registered = false;
48 
49  //! Name to be used
50  const std::string name = "GAMMA_INSERTION";
51  }
52 
53  //! Return the name
54  std::string getName() {return name;}
55 
56  //! Register all the factories
57  bool registerAll()
58  {
59  bool success = true;
60  if (! registered)
61  {
62  success &= Chroma::ThePropDisplacementFactory::Instance().registerObject(name, createProp);
63  success &= Chroma::TheFermDisplacementFactory::Instance().registerObject(name, createFerm);
64  registered = true;
65  }
66  return success;
67  }
68 
69 
70  //! Parameters for running code
71  Params::Params(XMLReader& xml, const std::string& path)
72  {
73  XMLReader paramtop(xml, path);
74 
75  read(paramtop, "gamma", gamma);
76  }
77 
78 
79  //! Parameters for running code
80  void Params::writeXML(XMLWriter& xml, const std::string& path) const
81  {
82  push(xml, path);
83 
84  write(xml, "gamma", gamma);
85 
86  pop(xml);
87  }
88 
89  } // end namespace
90 } // end namespace Chroma
91 
Primary include file for CHROMA library code.
Base class for quark displacement.
static T & Instance()
Definition: singleton.h:432
Gamma insertions.
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.
static bool registered
Local registration flag.
const std::string name
Name to be used.
CreateFermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFerm(XMLReader &xml, const std::string &path)
bool registerAll()
Register all the factories.
std::string getName()
Return the name.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
LatticeFermion tmp
Definition: mespbg5p_w.cc:36
push(xml_out,"Condensates")
pop(xml_out)
::std::string string
Definition: gtest.h:1979
Factory for producing quark displacement objects.
Params for simple quark displacement.
void writeXML(XMLWriter &in, const std::string &path) const
Parameters for running code.