Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
force_F_Clover_Nf2.h
Go to the documentation of this file.
1 
14 #ifndef FORCE_F_CLOVER_NF2_INCLUDED
15 #define FORCE_F_CLOVER_NF2_INCLUDED
16 
17 #include "fopr_Clover.h"
18 
19 #include "force_F_Wilson_Nf2.h"
20 #include "force_F_CloverTerm.h"
21 
22 #include "staples.h"
23 
24 #include "bridgeIO.h"
25 using Bridge::vout;
26 
28 
37 //- parameters class
40 {
41  public:
43 };
44 //- end
45 
46 class Force_F_Clover_Nf2 : public Force
47 {
48  private:
49  double m_kappa;
50  double m_cSW;
51  std::valarray<int> m_boundary;
52 
53  std::string m_repr;
54 
56  int m_Ndim;
61 
62  public:
63 
65  : Force()
66  {
67  init("Dirac");
68  }
69 
71  Force_F_Clover_Nf2(std::string repr)
72  : Force()
73  {
74  init(repr);
75  }
76 
79  {
80  tidyup();
81  }
82 
84  void set_parameters(const Parameters& params);
85 
87 // void set_parameters (const Parameters_Fopr_Clover& params);
88 
90  void set_parameters(const double kappa, const double cSW,
91  const std::valarray<int> bc);
92 
94  void set_config(Field *U)
95  {
96  m_U = (Field_G *)U;
97  m_fopr_c->set_config(U);
100  set_component();
101  }
102 
104  Field force_core(const Field& eta);
105 
107  Field force_core1(const Field& zeta, const Field& eta);
108 
110  Field force_udiv(const Field& eta);
111 
113  Field force_udiv1(const Field& zeta, const Field& eta);
114 
115  private:
116 
117  void init(std::string);
118  void tidyup();
119 
121  Field force_udiv1_impl(const Field_F& zeta, const Field_F& eta);
122 
124  void set_component();
125 
126  int index_dir(int mu, int nu)
127  {
128  return mu + m_Ndim * nu;
129  }
130 };
131 #endif