Bridge++  Version 1.5.4
 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 "force_F_Wilson_SF.h"
18 #include "tensorProd.h"
19 
20 #include "Field/field_G_SF.h"
21 #include "Fopr/fopr_Clover_SF.h"
23 
24 #include "IO/bridgeIO.h"
25 using Bridge::vout;
26 
28 
38 class Force_F_Clover_SF : public Force
39 {
40  public:
41  static const std::string class_name;
42 
43  private:
44  double m_kappa;
45  double m_cSW;
46  std::vector<int> m_boundary;
47 
48  int m_Ndim;
50 
54 
56  double m_phi[3];
58  double m_phipr[3];
59 
63 
64  public:
65 
67  {
70 
71  const int Nvol = CommonParameters::Nvol();
73 
74  m_boundary.resize(m_Ndim);
75  m_Cud = new Field_G(Nvol, m_Ndim * m_Ndim);
76  }
77 
79  {
80  delete m_Cud;
81  delete m_force_w;
82  delete m_fopr_c;
83  }
84 
85  void set_parameters(const Parameters& params);
86 
88  void set_parameters(const double kappa, const double cSW, const std::vector<int> bc,
89  double *phi, double *phipr);
90 
92  void set_config(Field *U)
93  {
94  m_U = (Field_G *)U;
97  set_component();
98  }
99 
101  void force_udiv(Field& force, const Field& eta);
102 
104  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
105 
106 
107  private:
109  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
110 
112  void set_component();
113 
114  int index_dir(const int mu, const int nu)
115  {
116  return mu + m_Ndim * nu;
117  }
118 };
119 #endif
SU(N) gauge field class in which a few functions are added for the SF.
Definition: field_G_SF.h:33
double m_phi[3]
SF boundary condition at t=0.
BridgeIO vout
Definition: bridgeIO.cpp:503
std::vector< int > m_boundary
boundary conditions
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:45
void set_config(Field *U)
Field_G * m_U
Definition: force_F.h:68
void set_config(Field *U)
setting pointer to the gauge configuration.
int index_dir(const int mu, const int nu)
void force_udiv(Field &force, const Field &eta)
For recursive calculation of smeared force.
Base class of fermion force calculation.
Definition: force_F.h:31
Class for parameters.
Definition: parameters.h:46
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:38
Force for the standard Wilson fermion operator.
static const std::string class_name
Force calculation for clover quark action with SF BC.
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.
Clover fermion operator.