Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
smear.h
Go to the documentation of this file.
1 
15 #ifndef SMEAR_INCLUDED
16 #define SMEAR_INCLUDED
17 
18 #include "Parameters/parameters.h"
19 #include "projection.h"
20 
21 #include "IO/bridgeIO.h"
22 
23 #ifdef USE_FACTORY
24 #include "Tools/factory.h"
25 #endif
26 
27 
29 
36 class Smear
37 {
38  protected:
40 
41  public:
43  : m_vl(CommonParameters::Vlevel()) {}
44 
45  virtual ~Smear() {}
46 
47  private:
48  Smear(const Smear&);
49  Smear& operator=(const Smear&);
50 
51  public:
52  virtual void smear(Field_G&, const Field_G&) = 0;
53 
54  virtual void set_parameters(const Parameters&) = 0;
55 
57 
58 #ifdef USE_FACTORY
59  public:
60  typedef Smear *(*ProductCreator)(Projection *);
62 
63  static Smear *New(const IdentifierType& subtype, Projection *proj)
64  {
65  ProductCreator p = Factory::Find(subtype);
66 
67  return p ? (*p)(proj) : 0;
68  }
69 
70  static Smear *New(const IdentifierType& subtype, unique_ptr<Projection>& proj)
71  {
72  ProductCreator p = Factory::Find(subtype);
73 
74  return p ? (*p)(proj.get()) : 0;
75  }
76 #endif
77 };
78 #endif
Smear & operator=(const Smear &)
virtual void set_parameters(const Parameters &)=0
Class for parameters.
Definition: parameters.h:46
Smear()
Definition: smear.h:42
SU(N) gauge field.
Definition: field_G.h:38
pointer get() const
Common parameter class: provides parameters as singleton.
virtual void smear(Field_G &, const Field_G &)=0
base class for projection operator into gauge group.
Definition: projection.h:31
virtual ~Smear()
Definition: smear.h:45
Bridge::VerboseLevel vl
Definition: checker.cpp:18
VerboseLevel
Definition: bridgeIO.h:42
base class for smearing of link variables.
Definition: smear.h:36
std::string IdentifierType
Factory template class.
Definition: factory.h:33
Bridge::VerboseLevel m_vl
Definition: smear.h:39
void set_parameter_verboselevel(const Bridge::VerboseLevel vl)
Definition: smear.h:56