Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
forceSmear.h
Go to the documentation of this file.
1 
14 #ifndef FORCESMEAR_INCLUDED
15 #define FORCESMEAR_INCLUDED
16 
17 #include "defs.h"
18 #include "parameters.h"
19 #include "commonParameters.h"
20 #include "field_G.h"
21 
22 #include "projection.h"
23 
24 #include "bridgeIO.h"
25 
26 #ifdef USE_FACTORY
27 #include "factory.h"
28 #endif
29 
30 
32 
38 {
39  public:
40 
42  : m_vl(CommonParameters::Vlevel()) {}
43 
44  virtual ~ForceSmear() {}
45 
46  virtual void set_parameters(const Parameters&) = 0;
47 
49 
50  virtual Field force_udiv(const Field_G&, const Field_G&) = 0;
51 
52  protected:
54 
55 
56 #ifdef USE_FACTORY
57  public:
58  typedef ForceSmear *(*ProductCreator)(Projection *);
60 
61  static ForceSmear *New(const IdentifierType& subtype, Projection *proj)
62  {
63  ProductCreator p = Factory::Find(subtype);
64 
65  return p ? (*p)(proj) : 0;
66  }
67 #endif
68 };
69 #endif