Bridge++  Ver. 1.2.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  public:
48  static const std::string class_name;
49 
50  private:
51  double m_kappa;
52  double m_cSW;
53  std::valarray<int> m_boundary;
54 // Field_G *m_U; //!< pointer to gauge field
55 
56  int m_Ndim;
58 
62 
64  double m_phi[3];
66  double m_phipr[3];
67 
71 
72  public:
73 
75  {
78 
79  int Nvol = CommonParameters::Nvol();
81 
82  m_boundary.resize(m_Ndim);
83  m_Cud = new Field_G(Nvol, m_Ndim * m_Ndim);
84  }
85 
87  {
88  delete m_Cud;
89  delete m_force_w;
90  delete m_fopr_c;
91  }
92 
93  void set_parameters(const Parameters& params);
94 
95  // void set_parameters (const Parameters_Fopr_Clover_SF& params);
96 
98  void set_parameters(double kappa, double cSW, const std::valarray<int> bc,
99  double *phi, double *phipr);
100 
102  void set_config(Field *U)
103  {
104  m_U = (Field_G *)U;
106  m_force_w->set_config(U);
107  set_component();
108  }
109 
110 // //! Force determination for clover fermion.
111 // void force_core(Field& force, const Field& eta);
112 
113 // //! Force determination for clover fermion.
114 // void force_core1(Field& force, const Field& zeta, const Field& eta);
115 
117  void force_udiv(Field& force, const Field& eta);
118 
120  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
121 
122 
123  private:
124 
126  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
127 
129  void set_component();
130 
131  int index_dir(int mu, int nu)
132  {
133  return mu + m_Ndim * nu;
134  }
135 };
136 #endif
double m_phi[3]
SF boundary condition at t=0.
BridgeIO vout
Definition: bridgeIO.cpp:207
double m_cSW
clover coefficient
void force_udiv1_impl(Field_G &force, const Field_F &zeta, const Field_F &eta)
Core implemetation of clover force calculation.
Field_F_SF set_zero
In order to set the boundary field.
void set_config(Field *U)
Setting gauge configuration.
Force_F_Clover_SF * m_imp
Container of Field-type object.
Definition: field.h:37
void set_config(Field *U)
Field_G * m_U
Definition: force.h:74
void set_config(Field *U)
setting pointer to the gauge configuration.
void force_udiv(Field &force, const Field &eta)
For recursive calculation of smeared force.
Base class of fermion force calculation.
Definition: force.h:34
Force calculation for clover quark action with SF BC.
Class for parameters.
Definition: parameters.h:40
Fopr_Clover_SF * m_fopr_c
void force_udiv1(Field &force, const Field &zeta, const Field &eta)
For recursive calculation of smeared force.
double m_phipr[3]
SF boundary condition at t=Nt.
Wilson-type fermion field.
Definition: field_F.h:37
SU(N) gauge field.
Definition: field_G.h:36
std::valarray< int > m_boundary
boundary conditions
static const std::string class_name
int index_dir(int mu, int nu)
double m_kappa
hopping parameter
Field_G * m_Cud
for force calculation
void set_parameters(const Parameters &params)
Force_F_Wilson_SF * m_force_w
A class generated to add a function for the SF.
Definition: field_F_SF.h:33
void set_component()
Set building components for force calculation.