Bridge++  Ver. 1.2.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  public:
49  static const std::string class_name;
50 
51  private:
52  double m_kappa;
53  double m_cSW;
54  std::valarray<int> m_boundary;
55 
56  std::string m_repr;
57 
58 // Field_G *m_U; //!< pointer to gauge field
59  int m_Ndim;
64 
65  public:
66 
68  : Force()
69  {
70  init("Dirac");
71  }
72 
74  Force_F_Clover_Nf2(std::string repr)
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& params);
91 
93  void set_parameters(const double kappa, const double cSW,
94  const std::valarray<int> bc);
95 
97  void set_config(Field *U)
98  {
99  m_U = (Field_G *)U;
100  m_fopr_c->set_config(U);
101  m_force_w->set_config(U);
103  set_component();
104  }
105 
106 // //! Force determination for clover fermion.
107 // void force_core(Field& force, const Field& eta);
108 
109 // //! Force determination for clover fermion.
110 // void force_core1(Field& force, const Field& zeta, const Field& eta);
111 
113  void force_udiv(Field& force, const Field& eta);
114 
116  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
117 
118 
119 // //! Force determination for clover fermion.
120 // Field force_core(const Field& eta);
121 
122 // //! Force determination for clover fermion.
123 // Field force_core1(const Field& zeta, const Field& eta);
124 
125 // //! For recursive calculation of smeared force.
126 // Field force_udiv(const Field& eta);
127 
128 // //! For recursive calculation of smeared force.
129 // Field force_udiv1(const Field& zeta, const Field& eta);
130 
131 
132  private:
133 
134  void init(std::string);
135  void tidyup();
136 
138  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
139 
141  void set_component();
142 
143  int index_dir(int mu, int nu)
144  {
145  return mu + m_Ndim * nu;
146  }
147 };
148 #endif
double m_kappa
hopping parameter
BridgeIO vout
Definition: bridgeIO.cpp:207
void init(std::string)
Force_F_Clover_Nf2(std::string repr)
Construction with gamma matrix representation.
int index_dir(int mu, int nu)
Container of Field-type object.
Definition: field.h:37
~Force_F_Clover_Nf2()
Deconstructor.
Field_G * m_U
Definition: force.h:74
Base class of fermion force calculation.
Definition: force.h:34
double m_cSW
clover coefficient
Class for parameters.
Definition: parameters.h:40
int m_Ndim
spacetime dimension
std::valarray< int > m_boundary
boundary conditions
Wilson-type fermion field.
Definition: field_F.h:37
void set_parameters(const Parameters &params)
Setting parameters of clover fermion force.
void set_config(Field *U)
Setting gauge configuration.
void set_config(Field *U)
void force_udiv1_impl(Field_G &force, const Field_F &zeta, const Field_F &eta)
Core implemetation of clover force calculation.
void set_config(Field *U)
setting pointer to the gauge configuration.
Definition: fopr_Clover.h:90
SU(N) gauge field.
Definition: field_G.h:36
Force_F_CloverTerm * m_force_csw
Clover term force.
void force_udiv(Field &force, const Field &eta)
For recursive calculation of smeared force.
void set_config(Field *U)
Setting gauge configuration.
Field_G * m_Cud
for force calculation
void force_udiv1(Field &force, const Field &zeta, const Field &eta)
For recursive calculation of smeared force.
void set_component()
Set building components for force calculation.
Force_F_Wilson_Nf2 * m_force_w
Wilson fermion force.
std::string m_repr
gamma matrix representation
static const std::string class_name
Fopr_Clover * m_fopr_c
fermion operator
Force calculation for clover quark action.