Bridge++  Ver. 2.0.2
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_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:
45 
46  double m_kappa;
47  double m_cSW;
48  std::vector<int> m_boundary;
49 
50  int m_Ndim;
52 
56 
58  std::vector<double> m_phi;
60  std::vector<double> m_phipr;
61 
63  // Field_F_SF set_zero;
64  // Field_G_SF set_wk;
65 
68 
69  public:
72  {
73  init();
74  }
75 
77  : m_vl(CommonParameters::Vlevel()),
79  {
80  init();
81  set_parameters(params);
82  }
83 
85  {
86  tidyup();
87  }
88 
89  private:
90  void init()
91  {
94 
95  const int Nvol = CommonParameters::Nvol();
97 
98  m_boundary.resize(m_Ndim);
99  m_Cud = new Field_G(Nvol, m_Ndim * m_Ndim);
100  }
101 
102  void tidyup()
103  {
104  delete m_Cud;
105  delete m_force_w;
106  delete m_fopr_c;
107  }
108 
109  public:
110 
111  void set_parameters(const Parameters& params);
112 
114  void set_parameters(const double kappa, const double cSW, const std::vector<int> bc,
115  double *phi, double *phipr);
116 
117  void get_parameters(Parameters& params) const;
118 
120  void set_config(Field *U)
121  {
122  m_U = (Field_G *)U;
124  m_force_w->set_config(U);
125  set_component();
126  }
127 
129  void force_udiv(Field& force, const Field& eta);
130 
132  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
133 
134 
135  private:
137  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
138 
140  void set_component();
141 
142  void set_boundary_zero(Field_F& f);
143 
144  int index_dir(const int mu, const int nu)
145  {
146  return mu + m_Ndim * nu;
147  }
148 };
149 
150 #endif
Force_F_Clover_SF::force_udiv
void force_udiv(Field &force, const Field &eta)
For recursive calculation of smeared force.
Definition: force_F_Clover_SF.cpp:134
bridgeIO.h
Force_F_Clover_SF::m_cSW
double m_cSW
clover coefficient
Definition: force_F_Clover_SF.h:47
Force_F_Clover_SF::~Force_F_Clover_SF
~Force_F_Clover_SF()
Definition: force_F_Clover_SF.h:84
CommonParameters
Common parameter class: provides parameters as singleton.
Definition: commonParameters.h:42
Force_F_Clover_SF::force_udiv1
void force_udiv1(Field &force, const Field &zeta, const Field &eta)
For recursive calculation of smeared force.
Definition: force_F_Clover_SF.cpp:160
Force_F_Clover_SF::set_config
void set_config(Field *U)
Setting gauge configuration.
Definition: force_F_Clover_SF.h:120
CommonParameters::Ndim
static int Ndim()
Definition: commonParameters.h:117
Parameters
Class for parameters.
Definition: parameters.h:46
force_F_Wilson_SF.h
Force_F_Clover_SF::Force_F_Clover_SF
Force_F_Clover_SF(const Parameters &params)
Definition: force_F_Clover_SF.h:76
CommonParameters::Nvol
static int Nvol()
Definition: commonParameters.h:109
Fopr_Clover_SF::set_config
void set_config(Field *U)
setup configuration (Note that this method is not multi-threaded).
Definition: fopr_Clover_SF.cpp:221
Force_F_Clover_SF::index_dir
int index_dir(const int mu, const int nu)
Definition: force_F_Clover_SF.h:144
Force_F_Clover_SF
Force calculation for clover quark action with SF BC.
Definition: force_F_Clover_SF.h:38
Force_F_Clover_SF::m_wkpr
Mat_SU_N m_wkpr
SF boundary condition at t=Nt.
Definition: force_F_Clover_SF.h:67
Force_F_Clover_SF::init
void init()
Definition: force_F_Clover_SF.h:90
Fopr_Clover_SF
Clover fermion operator.
Definition: fopr_Clover_SF.h:44
Force_F_Clover_SF::m_fopr_c
Fopr_Clover_SF * m_fopr_c
Definition: force_F_Clover_SF.h:53
Force::m_U
Field_G * m_U
Definition: force_F.h:66
Force_F_Clover_SF::m_imp
Force_F_Clover_SF * m_imp
Definition: force_F_Clover_SF.h:55
Force_F_Wilson_SF::set_config
void set_config(Field *U)
Definition: force_F_Wilson_SF.h:94
Force_F_Clover_SF::Force_F_Clover_SF
Force_F_Clover_SF()
Definition: force_F_Clover_SF.h:70
SU_N::Mat_SU_N
Definition: mat_SU_N.h:36
Force_F_Clover_SF::tidyup
void tidyup()
Definition: force_F_Clover_SF.h:102
Force_F_Clover_SF::class_name
static const std::string class_name
Definition: force_F_Clover_SF.h:41
field_SF.h
Force_F_Clover_SF::m_Cud
Field_G * m_Cud
for force calculation
Definition: force_F_Clover_SF.h:51
Force_F_Clover_SF::set_parameters
void set_parameters(const Parameters &params)
Definition: force_F_Clover_SF.cpp:19
Force_F_Clover_SF::m_kappa
double m_kappa
hopping parameter
Definition: force_F_Clover_SF.h:46
Force_F_Clover_SF::set_boundary_zero
void set_boundary_zero(Field_F &f)
Definition: force_F_Clover_SF.cpp:315
staple_SF.h
fopr_Clover_SF.h
Field_F
Wilson-type fermion field.
Definition: field_F.h:37
Force_F_Clover_SF::m_force_w
Force_F_Wilson_SF * m_force_w
Definition: force_F_Clover_SF.h:54
tensorProd.h
Force_F_Clover_SF::get_parameters
void get_parameters(Parameters &params) const
Definition: force_F_Clover_SF.cpp:49
Force_F_Clover_SF::m_wk
Mat_SU_N m_wk
In order to set the boundary field.
Definition: force_F_Clover_SF.h:66
Force_F_Clover_SF::m_phi
std::vector< double > m_phi
SF boundary condition at t=0.
Definition: force_F_Clover_SF.h:58
Field
Container of Field-type object.
Definition: field.h:46
Force_F_Clover_SF::force_udiv1_impl
void force_udiv1_impl(Field_G &force, const Field_F &zeta, const Field_F &eta)
Core implemetation of clover force calculation.
Definition: force_F_Clover_SF.cpp:176
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Force_F_Clover_SF::set_component
void set_component()
Set building components for force calculation.
Definition: force_F_Clover_SF.cpp:292
Force_F_Clover_SF::m_phipr
std::vector< double > m_phipr
SF boundary condition at t=Nt.
Definition: force_F_Clover_SF.h:60
Force
Base class of fermion force calculation.
Definition: force_F.h:31
Force_F_Clover_SF::m_boundary
std::vector< int > m_boundary
boundary conditions
Definition: force_F_Clover_SF.h:48
Force_F_Wilson_SF
Force for the standard Wilson fermion operator.
Definition: force_F_Wilson_SF.h:39
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512
Force_F_Clover_SF::m_Ndim
int m_Ndim
Definition: force_F_Clover_SF.h:50
Force_F_Clover_SF::m_vl
Bridge::VerboseLevel m_vl
Definition: force_F_Clover_SF.h:44