Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
force_F_CloverTerm.h
Go to the documentation of this file.
1 
14 #ifndef FORCE_F_CLOVERTERM_INCLUDED
15 #define FORCE_F_CLOVERTERM_INCLUDED
16 
17 #include "force.h"
18 #include "fopr_CloverTerm.h"
19 
20 #include "staples.h"
21 #include "shiftField_lex.h"
22 #include "tensorProd.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_CloverTerm : 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;
59 
60  public:
63  : Force()
64  {
65  init("Dirac");
66  }
67 
68  Force_F_CloverTerm(std::string repr)
69  : Force()
70  {
71  init(repr);
72  }
73 
76  {
77  tidyup();
78  }
79 
81  void set_parameters(const Parameters& params);
82 
84  // void set_parameters (const Parameters_Fopr_CloverTerm& params);
85 
87  void set_parameters(double kappa, double cSW, const std::valarray<int> bc);
88 
90  void set_config(Field *U)
91  {
92  m_U = (Field_G *)U;
94  // m_forcew->set_config(U);
95  set_component();
96  }
97 
99  Field force_core(const Field& eta);
100 
102  Field force_core1(const Field& zeta, const Field& eta);
103 
105  Field force_udiv(const Field& eta);
106 
108  Field force_udiv1(const Field& zeta, const Field& eta);
109 
110  private:
111 
112  void init(std::string);
113  void tidyup();
114 
116  Field force_udiv1_impl(const Field_F& zeta, const Field_F& eta);
117 
119  void set_component();
120 
121  int index_dir(int mu, int nu)
122  {
123  return mu + m_Ndim * nu;
124  }
125 };
126 #endif