Bridge++  Ver. 2.0.2
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_F.h"
18 #include "tensorProd.h"
19 
20 #include "Field/shiftField_lex.h"
21 #include "Fopr/fopr_CloverTerm.h"
23 
24 #include "IO/bridgeIO.h"
25 using Bridge::vout;
26 
28 
38 class Force_F_CloverTerm : 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  std::string m_repr;
51 
52 // Field_G *m_U; //!< pointer to gauge field
53  int m_Ndim;
56 
57  public:
61  : m_vl(CommonParameters::Vlevel())
62  {
63  init("Dirac");
64  }
65 
67  Force_F_CloverTerm(const std::string repr)
68  : m_vl(CommonParameters::Vlevel())
69  {
70  init(repr);
71  }
72 
74  : m_vl(CommonParameters::Vlevel())
75  {
76  std::string repr = params.get_string("gamma_matrix_type");
77  init(repr);
78  set_parameters(params);
79  }
80 
83  {
84  tidyup();
85  }
86 
88  void set_parameters(const Parameters& params);
89 
91  void set_parameters(const double kappa, const double cSW, const std::vector<int> bc);
92 
94  void get_parameters(Parameters& params) const;
95 
97  void set_config(Field *U)
98  {
99  m_U = (Field_G *)U;
101  // m_forcew->set_config(U);
102  set_component();
103  }
104 
106  void force_core(Field& force, const Field& eta); // override default
107 
108 // //! Force determination for clover fermion.
109 // void force_core1(Field& force, const Field& zeta, const Field& eta);
110 
112  void force_udiv(Field& force, const Field& eta);
113 
115  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
116 
117  private:
118  void init(const std::string);
119  void tidyup();
120 
122  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
123 
125  void set_component();
126 
127  int index_dir(const int mu, const int nu)
128  {
129  return mu + m_Ndim * nu;
130  }
131 };
132 #endif
bridgeIO.h
CommonParameters
Common parameter class: provides parameters as singleton.
Definition: commonParameters.h:42
Parameters
Class for parameters.
Definition: parameters.h:46
Force_F_CloverTerm::tidyup
void tidyup()
Definition: force_F_CloverTerm.cpp:98
shiftField_lex.h
Force_F_CloverTerm::~Force_F_CloverTerm
~Force_F_CloverTerm()
Deconstructor.
Definition: force_F_CloverTerm.h:82
Force_F_CloverTerm
Force calculation for clover term of clover fermion.
Definition: force_F_CloverTerm.h:38
Force_F_CloverTerm::force_udiv1
void force_udiv1(Field &force, const Field &zeta, const Field &eta)
For recursive calculation of smeared force.
Definition: force_F_CloverTerm.cpp:123
Force_F_CloverTerm::Force_F_CloverTerm
Force_F_CloverTerm(const Parameters &params)
Definition: force_F_CloverTerm.h:73
Org::Fopr_CloverTerm::set_config
void set_config(Field *U)
sets the gauge configuration.
Definition: fopr_CloverTerm_impl.cpp:197
Force::m_U
Field_G * m_U
Definition: force_F.h:66
Force_F_CloverTerm::set_config
void set_config(Field *U)
Setting gauge configuration.
Definition: force_F_CloverTerm.h:97
Force_F_CloverTerm::force_core
void force_core(Field &force, const Field &eta)
Force determination for clover fermion.
Definition: force_F_CloverTerm.cpp:107
Force_F_CloverTerm::m_repr
std::string m_repr
gamma matrix representation
Definition: force_F_CloverTerm.h:50
Force_F_CloverTerm::force_udiv
void force_udiv(Field &force, const Field &eta)
For recursive calculation of smeared force.
Definition: force_F_CloverTerm.cpp:115
fopr_CloverTerm.h
Force_F_CloverTerm::init
void init(const std::string)
Definition: force_F_CloverTerm.cpp:83
Force_F_CloverTerm::set_component
void set_component()
Set building components for force calculation.
Definition: force_F_CloverTerm.cpp:247
Force_F_CloverTerm::set_parameters
void set_parameters(const Parameters &params)
Setting parameters of clover fermion force.
Definition: force_F_CloverTerm.cpp:19
Force_F_CloverTerm::Force_F_CloverTerm
DEPRECATED Force_F_CloverTerm()
Constructor.
Definition: force_F_CloverTerm.h:60
Force_F_CloverTerm::m_boundary
std::vector< int > m_boundary
boundary conditions
Definition: force_F_CloverTerm.h:48
Force_F_CloverTerm::m_kappa
double m_kappa
hopping parameter
Definition: force_F_CloverTerm.h:46
Force_F_CloverTerm::Force_F_CloverTerm
DEPRECATED Force_F_CloverTerm(const std::string repr)
Definition: force_F_CloverTerm.h:67
staple_lex.h
Force_F_CloverTerm::index_dir
int index_dir(const int mu, const int nu)
Definition: force_F_CloverTerm.h:127
Force_F_CloverTerm::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_CloverTerm.cpp:140
force_F.h
Force_F_CloverTerm::m_fopr_csw
Fopr_CloverTerm * m_fopr_csw
fermion operator
Definition: force_F_CloverTerm.h:55
Force_F_CloverTerm::m_Ndim
int m_Ndim
spacetime dimension
Definition: force_F_CloverTerm.h:53
Force_F_CloverTerm::m_Cud
Field_G * m_Cud
for force calculation
Definition: force_F_CloverTerm.h:54
Force_F_CloverTerm::m_vl
Bridge::VerboseLevel m_vl
Definition: force_F_CloverTerm.h:44
Field_F
Wilson-type fermion field.
Definition: field_F.h:37
Org::Fopr_CloverTerm
Definition: fopr_CloverTerm_impl.h:55
Parameters::get_string
string get_string(const string &key) const
Definition: parameters.cpp:221
tensorProd.h
Field
Container of Field-type object.
Definition: field.h:46
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Force_F_CloverTerm::class_name
static const std::string class_name
Definition: force_F_CloverTerm.h:41
Force
Base class of fermion force calculation.
Definition: force_F.h:31
DEPRECATED
#define DEPRECATED
Definition: configure.h:28
Force_F_CloverTerm::m_cSW
double m_cSW
clover coefficient
Definition: force_F_CloverTerm.h:47
Force_F_CloverTerm::get_parameters
void get_parameters(Parameters &params) const
Getting parameters of clover fermion force.
Definition: force_F_CloverTerm.cpp:46
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512