Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
projection.h
Go to the documentation of this file.
1 
14 #ifndef PROJECTION_INCLUDED
15 #define PROJECTION_INCLUDED
16 
17 #include "Field/field_G.h"
18 #include "Parameters/parameters.h"
19 
20 #ifdef USE_FACTORY
21 #include "Tools/factory.h"
22 #endif
23 
25 
31 {
32  protected:
34 
35  public:
37  : m_vl(CommonParameters::Vlevel()) {}
38 
39  virtual ~Projection() {}
40 
41  private:
42  // non-copyable
43  Projection(const Projection&);
45 
46  public:
48  virtual void project(Field_G& v,
49  const double alpha,
50  const Field_G& C, const Field_G& U) = 0;
51 
53  virtual void force_recursive(Field_G& Xi, Field_G& iTheta,
54  const double alpha, const Field_G& Sigmap,
55  const Field_G& C, const Field_G& U) = 0;
56 
57  virtual void set_parameters(const Parameters& param) = 0;
58 
60 
61 
62 #ifdef USE_FACTORY
63  public:
64  typedef Projection *(*ProductCreator)();
66 
67  static Projection *New(const IdentifierType& subtype)
68  {
69  ProductCreator p = Factory::Find(subtype);
70 
71  return p ? (*p)() : 0;
72  }
73 
74 #ifdef USE_FACTORY_AUTOREGISTER
75 #else
76  static bool init_factory();
77 #endif
78 #endif
79 };
80 #endif
virtual void set_parameters(const Parameters &param)=0
void set_parameter_verboselevel(const Bridge::VerboseLevel vl)
Definition: projection.h:59
virtual void force_recursive(Field_G &Xi, Field_G &iTheta, const double alpha, const Field_G &Sigmap, const Field_G &C, const Field_G &U)=0
determination of fields for force calculation
Class for parameters.
Definition: parameters.h:46
virtual void project(Field_G &v, const double alpha, const Field_G &C, const Field_G &U)=0
projection V = P[alpha, C, U]
SU(N) gauge field.
Definition: field_G.h:38
Projection & operator=(const Projection &)
Common parameter class: provides parameters as singleton.
base class for projection operator into gauge group.
Definition: projection.h:30
Bridge::VerboseLevel vl
VerboseLevel
Definition: bridgeIO.h:42
std::string IdentifierType
Factory template class.
Definition: factory.h:39
virtual ~Projection()
Definition: projection.h:39
Bridge::VerboseLevel m_vl
Definition: projection.h:33