Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
force_F_Clover_Nf2_Isochemical.h
Go to the documentation of this file.
1 
14 #ifndef FORCE_F_CLOVER_NF2_ISOCHEMICAL_INCLUDED
15 #define FORCE_F_CLOVER_NF2_ISOCHEMICAL_INCLUDED
16 
18 
20 #include "force_F_CloverTerm.h"
21 
22 #include "staples.h"
23 
24 #include "bridgeIO.h"
25 using Bridge::vout;
26 
28 
37 //- parameters class
40 {
41  public:
43 };
44 //- end
45 
47 {
48  public:
49  static const std::string class_name;
50 
51  private:
52  double m_kappa;
53  double m_cSW;
54  double m_mu;
55  std::valarray<int> m_boundary;
56 
57  std::string m_repr;
58  std::string m_mode;
59 
60 // Field_G *m_U; //!< pointer to gauge field
61 // Field_G* m_Cud; //!< for force calculation
62 
66 
67  int m_Ndim;
68 
69  public:
72  : Force()
73  {
74  init("Dirac");
75  }
76 
78  : Force()
79  {
80  init(repr);
81  }
82 
85  {
86  tidyup();
87  }
88 
90  void set_parameters(const Parameters& params);
91 
93  // void set_parameters (const Parameters_Fopr_Clover_Isochemical& params);
94 
96  void set_parameters(const double kappa, const double cSW, const double mu,
97  const std::valarray<int> bc);
98 
99  void set_mode(const std::string& mode)
100  {
101  m_mode = mode;
102  m_fopr_c->set_mode(mode);
103  m_force_w->set_mode(mode);
104  }
105 
107  void set_config(Field *U)
108  {
109  m_U = (Field_G *)U;
110  m_fopr_c->set_config(U);
111  m_force_w->set_config(U);
113  // set_component();
114  }
115 
116 // //! Force determination for clover fermion.
117 // void force_core(Field& force, const Field& eta);
118 
119 // //! Force determination for clover fermion.
120 // void force_core1(Field& force, const Field& zeta, const Field& eta);
121 
123  void force_udiv(Field& force, const Field& eta);
124 
126  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
127 
128 
129  private:
130 
131  void init(std::string repr);
132  void tidyup();
133 
135  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
136 
138  // void set_component();
139 
140  int index_dir(int mu, int nu)
141  {
142  return mu + m_Ndim * nu;
143  }
144 };
145 #endif
void force_udiv1_impl(Field_G &force, const Field_F &zeta, const Field_F &eta)
Core implemetation of clover force calculation.
BridgeIO vout
Definition: bridgeIO.cpp:207
void set_config(Field *U)
setting pointer to the gauge configuration.
void set_parameters(const Parameters &params)
Setting parameters of clover fermion force.
std::string m_repr
gamma matrix representation
Container of Field-type object.
Definition: field.h:37
void set_config(Field *U)
Setting gauge configuration.
Field_G * m_U
Definition: force.h:74
Base class of fermion force calculation.
Definition: force.h:34
Class for parameters.
Definition: parameters.h:40
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Force_F_Wilson_Nf2_Isochemical * m_force_w
Wilson fermion force.
Wilson-type fermion field.
Definition: field_F.h:37
int index_dir(int mu, int nu)
Set building components for force calculation.
void set_config(Field *U)
Setting gauge configuration.
SU(N) gauge field.
Definition: field_G.h:36
Force_F_CloverTerm * m_force_csw
Clover term force.
void force_udiv(Field &force, const Field &eta)
For recursive calculation of smeared force.
double m_mu
Isospin chemical potential.
void set_mode(const std::string &mode)
in Force, setting the mode is optional when H is nonhermitian.
Force calculation for clover quark action.
std::valarray< int > m_boundary
boundary conditions
Fopr_Clover_Isochemical * m_fopr_c
fermion operator
void force_udiv1(Field &force, const Field &zeta, const Field &eta)
For recursive calculation of smeared force.
void set_mode(const std::string &mode)
in Force, setting the mode is optional when H is nonhermitian.