Bridge++  Ver.2.1.3
aforceSmear.h
Go to the documentation of this file.
1 
10 #ifndef AFORCESMEAR_INCLUDED
11 #define AFORCESMEAR_INCLUDED
12 
13 #include "lib/Smear/projection.h"
14 #include "lib/Field/field_G.h"
15 
16 #include "lib/IO/bridgeIO.h"
17 
18 #ifdef USE_FACTORY
19 #include "lib/Tools/factory.h"
20 #endif
21 
22 
24 
32 template<typename AFIELD>
34 {
35  public:
36 
38 
39  virtual ~AForceSmear() {}
40 
41  private:
42  // non-copyable
43  AForceSmear(const AForceSmear&);
45 
46  public:
47  virtual void set_parameters(const Parameters&) = 0;
48 
49  virtual void get_parameters(Parameters&) const = 0;
50 
51  virtual void force_udiv(Field_G&, const Field_G&, const Field_G&) {}
52 
53 
54 #ifdef USE_FACTORY
55  public:
56  typedef AForceSmear *(*ProductCreator)(AProjection<AFIELD> *);
57  typedef AForceSmear *(*ProductCreator_params)(AProjection<AFIELD>*,
58  const Parameters& params);
59 
62 
63  static AForceSmear *New(const IdentifierType& subtype,
64  AProjection<AFIELD> *proj)
65  {
66  ProductCreator p = Factory::Find(subtype);
67  return p ? (*p)(proj) : 0;
68  }
69 
70  static AForceSmear *New(const IdentifierType& subtype,
71  AProjection<AFIELD> *proj, const Parameters& params)
72  {
73  ProductCreator_params p = Factory_params::Find(subtype);
74  return p ? (*p)(proj, params) : 0;
75  }
76 
77 #ifdef USE_FACTORY_AUTOREGISTER
78 #else
79  static bool init_factory();
80 #endif
81 #endif
82 };
83 #endif
bridgeIO.h
field_G.h
factory.h
Parameters
Class for parameters.
Definition: parameters.h:46
AForceSmear::operator=
AForceSmear & operator=(const AForceSmear &)
projection.h
AForceSmear::AForceSmear
AForceSmear()
Definition: aforceSmear.h:37
AForceSmear::force_udiv
virtual void force_udiv(Field_G &, const Field_G &, const Field_G &)
Definition: aforceSmear.h:51
AForceSmear::~AForceSmear
virtual ~AForceSmear()
Definition: aforceSmear.h:39
AForceSmear
Base class for force calculation of smeared operators.
Definition: aforceSmear.h:33
AProjection
Base template class for projection operator into gauge group.
Definition: aprojection.h:31
FactoryTemplate
Definition: factory.h:42
AForceSmear::set_parameters
virtual void set_parameters(const Parameters &)=0
Field_G
SU(N) gauge field.
Definition: field_G.h:38
AForceSmear::get_parameters
virtual void get_parameters(Parameters &) const =0
IdentifierType
std::string IdentifierType
Definition: factory.h:39