Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
force_F_Clover_SF.h
Go to the documentation of this file.
1 
14 #ifndef FORCE_F_CLOVER_SF_INCLUDED
15 #define FORCE_F_CLOVER_SF_INCLUDED
16 
17 #include "fopr_Clover_SF.h"
18 #include "force_F_Wilson_SF.h"
19 #include "field_G_SF.h"
20 #include "staples_SF.h"
21 
22 #include "tensorProd.h"
23 
24 #include "bridgeIO.h"
25 using Bridge::vout;
26 
28 
37 //- parameters class
39 {
40  public:
42 };
43 //- end
44 
45 class Force_F_Clover_SF : public Force
46 {
47  private:
48  double m_kappa;
49  double m_cSW;
50  std::valarray<int> m_boundary;
52 
53  int m_Ndim;
55 
59 
61  double m_phi[3];
63  double m_phipr[3];
64 
68 
69  public:
70 
72  {
75 
76  int Nvol = CommonParameters::Nvol();
78 
79  m_boundary.resize(m_Ndim);
80  m_Cud = new Field_G(Nvol, m_Ndim * m_Ndim);
81  }
82 
84  {
85  delete m_Cud;
86  delete m_force_w;
87  delete m_fopr_c;
88  }
89 
90  void set_parameters(const Parameters& params);
91 
92  // void set_parameters (const Parameters_Fopr_Clover_SF& params);
93 
95  void set_parameters(double kappa, double cSW, const std::valarray<int> bc,
96  double *phi, double *phipr);
97 
99  void set_config(Field *U)
100  {
101  m_U = (Field_G *)U;
103  m_force_w->set_config(U);
104  set_component();
105  }
106 
108  Field force_core(const Field& eta);
109 
111  Field force_core1(const Field& zeta, const Field& eta);
112 
114  Field force_udiv(const Field& eta);
115 
117  Field force_udiv1(const Field& zeta, const Field& eta);
118 
119  private:
120 
122  Field force_udiv1_impl(const Field_F& zeta, const Field_F& eta);
123 
125  void set_component();
126 
127  int index_dir(int mu, int nu)
128  {
129  return mu + m_Ndim * nu;
130  }
131 };
132 #endif