Bridge++  Version 1.5.4
 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 "IO/bridgeIO.h"
23 using Bridge::vout;
24 
26 
37 {
38  public:
39  static const std::string class_name;
40 
41  private:
42  double m_kappa;
43  double m_cSW;
44  double m_mu;
45  std::vector<int> m_boundary;
46 
47  std::string m_repr;
48  std::string m_mode;
49 
50 // Field_G *m_U; //!< pointer to gauge field
51 // Field_G* m_Cud; //!< for force calculation
52 
56 
57  int m_Ndim;
58 
59  public:
62  : Force()
63  {
64  init("Dirac");
65  }
66 
67  Force_F_Clover_Nf2_Isochemical(const std::string repr)
68  : Force()
69  {
70  init(repr);
71  }
72 
75  {
76  tidyup();
77  }
78 
80  void set_parameters(const Parameters& params);
81 
83  void set_parameters(const double kappa, const double cSW, const double mu,
84  const std::vector<int> bc);
85 
86  void set_mode(const std::string& mode)
87  {
88  m_mode = mode;
89  m_fopr_c->set_mode(mode);
90  m_force_w->set_mode(mode);
91  }
92 
94  void set_config(Field *U)
95  {
96  m_U = (Field_G *)U;
97  m_fopr_c->set_config(U);
100  // set_component();
101  }
102 
104  void force_udiv(Field& force, const Field& eta);
105 
107  void force_udiv1(Field& force, const Field& zeta, const Field& eta);
108 
109 
110  private:
111  void init(const std::string repr);
112  void tidyup();
113 
115  void force_udiv1_impl(Field_G& force, const Field_F& zeta, const Field_F& eta);
116 
118  // void set_component();
119 
120  int index_dir(const int mu, const int nu)
121  {
122  return mu + m_Ndim * nu;
123  }
124 };
125 #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:503
void set_config(Field *U)
setting pointer to the gauge configuration.
void set_parameters(const Parameters &params)
Setting parameters of clover fermion force.
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Force calculation for clover quark action.
std::string m_repr
gamma matrix representation
Container of Field-type object.
Definition: field.h:45
void set_config(Field *U)
Setting gauge configuration.
Field_G * m_U
Definition: force_F.h:68
Base class of fermion force calculation.
Definition: force_F.h:31
Class for parameters.
Definition: parameters.h:46
Force_F_Wilson_Nf2_Isochemical * m_force_w
Wilson fermion force.
Wilson-type fermion field.
Definition: field_F.h:37
void set_config(Field *U)
Setting gauge configuration.
Clover fermion operator with isospin chemical potential.
Force for the Wilson fermion operator with isospin chemical potential.
SU(N) gauge field.
Definition: field_G.h:38
int index_dir(const int mu, const int nu)
Set building components for force calculation.
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_F_Clover_Nf2_Isochemical(const std::string repr)
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.
std::vector< int > m_boundary
boundary conditions
Force calculation for clover term of clover fermion.