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