Bridge++  Ver. 1.2.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  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;
62 
63  public:
66  : Force()
67  {
68  init("Dirac");
69  }
70 
71  Force_F_CloverTerm(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_CloverTerm& params);
88 
90  void set_parameters(double kappa, double cSW, const std::valarray<int> bc);
91 
93  void set_config(Field *U)
94  {
95  m_U = (Field_G *)U;
97  // m_forcew->set_config(U);
98  set_component();
99  }
100 
102  void force_core(Field& force, const Field& eta); // override default
103 
104 // //! Force determination for clover fermion.
105 // void force_core1(Field& force, const Field& zeta, const Field& eta);
106 
108  void force_udiv(Field& force, const Field& eta);
109 
111  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
112 
113  private:
114 
115  void init(std::string);
116  void tidyup();
117 
119  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
120 
122  void set_component();
123 
124  int index_dir(int mu, int nu)
125  {
126  return mu + m_Ndim * nu;
127  }
128 };
129 #endif
void set_config(Field *U)
setting pointer to the gauge configuration.
BridgeIO vout
Definition: bridgeIO.cpp:207
Force_F_CloverTerm(std::string repr)
std::valarray< int > m_boundary
boundary conditions
Container of Field-type object.
Definition: field.h:37
Field_G * m_U
Definition: force.h:74
void force_udiv1(Field &force, const Field &zeta, const Field &eta)
For recursive calculation of smeared force.
Base class of fermion force calculation.
Definition: force.h:34
Class for parameters.
Definition: parameters.h:40
~Force_F_CloverTerm()
Deconstructor.
Wilson-type fermion field.
Definition: field_F.h:37
int index_dir(int mu, int nu)
void set_config(Field *U)
Setting gauge configuration.
double m_kappa
hopping parameter
SU(N) gauge field.
Definition: field_G.h:36
void force_core(Field &force, const Field &eta)
Force determination for clover fermion.
void set_parameters(const Parameters &params)
Setting parameters of clover fermion force.
void force_udiv(Field &force, const Field &eta)
For recursive calculation of smeared force.
void set_component()
Set building components for force calculation.
int m_Ndim
spacetime dimension
std::string m_repr
gamma matrix representation
Fopr_CloverTerm * m_fopr_csw
fermion operator
void force_udiv1_impl(Field_G &force, const Field_F &zeta, const Field_F &eta)
Core implemetation of clover force calculation.
Force calculation for clover term of clover fermion.
double m_cSW
clover coefficient
Force_F_CloverTerm()
Constructor.
Field_G * m_Cud
for force calculation
void init(std::string)
static const std::string class_name