Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
force_F_Clover_Nf2_Isochemical.h
Go to the documentation of this file.
1 
14 #ifndef FORCE_F_CLOVER_NF2_ISOCHEMICAL_INCLUDED
15 #define FORCE_F_CLOVER_NF2_ISOCHEMICAL_INCLUDED
16 
18 
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 
47 {
48  private:
49  double m_kappa;
50  double m_cSW;
51  double m_mu;
52  std::valarray<int> m_boundary;
53 
54  std::string m_repr;
55  std::string m_mode;
56 
58  // Field_G* m_Cud; //!< for force calculation
59 
63 
64  int m_Ndim;
65 
66  public:
69  : Force()
70  {
71  init("Dirac");
72  }
73 
75  : Force()
76  {
77  init(repr);
78  }
79 
82  {
83  tidyup();
84  }
85 
87  void set_parameters(const Parameters& params);
88 
90  // void set_parameters (const Parameters_Fopr_Clover_Isochemical& params);
91 
93  void set_parameters(const double kappa, const double cSW, const double mu,
94  const std::valarray<int> bc);
95 
96  void set_mode(std::string mode)
97  {
98  m_mode = mode;
99  m_fopr_c->set_mode(mode);
100  m_force_w->set_mode(mode);
101  }
102 
104  void set_config(Field *U)
105  {
106  m_U = (Field_G *)U;
107  m_fopr_c->set_config(U);
108  m_force_w->set_config(U);
110  // set_component();
111  }
112 
114  Field force_core(const Field& eta);
115 
117  Field force_core1(const Field& zeta, const Field& eta);
118 
120  Field force_udiv(const Field& eta);
121 
123  Field force_udiv1(const Field& zeta, const Field& eta);
124 
125  private:
126 
127  void init(std::string repr);
128  void tidyup();
129 
131  Field force_udiv1_impl(const Field_F& zeta, const Field_F& eta);
132 
134  // void set_component();
135 
136  int index_dir(int mu, int nu)
137  {
138  return mu + m_Ndim * nu;
139  }
140 };
141 #endif