Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fopr_Wilson_eo_impl.h
Go to the documentation of this file.
1 
15 #ifndef FOPR_WILSON_EO_IMPL_INCLUDED
16 #define FOPR_WILSON_EO_IMPL_INCLUDED
17 
18 #include "fopr_Wilson_eo.h"
19 
20 //#include "fopr_eo.h"
21 #include "shiftField_eo.h"
22 
23 #include "gammaMatrixSet.h"
24 
25 #include "bridgeIO.h"
26 using Bridge::vout;
27 
29 
40 {
41  public:
42  static const std::string class_name;
43 
44  private:
45  int m_Nvol, m_Nvol2, m_Ndim;
46  int m_Nc, m_Nd;
47  double m_kappa;
48  std::valarray<int> m_boundary;
50  Field_G *m_Ueo;
51 
55 
56  std::valarray<GammaMatrix> m_GM;
57 
59 
60  std::string m_mode;
61  std::string m_repr;
62 
63  public:
64 
65  Fopr_Wilson_eo_impl(std::string repr)
66  : m_Nvol(CommonParameters::Nvol()),
67  m_Nvol2(CommonParameters::Nvol() / 2),
68  m_Ndim(CommonParameters::Ndim()),
69  m_Nc(CommonParameters::Nc()),
70  m_Nd(CommonParameters::Nd()),
71  trf(m_Nvol2, 1), trf2(m_Nvol2, 1)
72  {
73  init(repr);
74  }
75 
77  {
78  delete m_Ueo;
79  }
80 
81  void set_parameters(const double kappa, const std::valarray<int> bc);
82 
83  void set_config(Field *U);
84 
85  void prePropD(Field&, Field&, const Field&);
86  void postPropD(Field&, const Field&, const Field&);
87  void prePropDag(Field&, Field&, const Field&);
88  void postPropDag(Field&, const Field&, const Field&);
89 
90  void D(Field& v, const Field& f);
91  void Ddag(Field& v, const Field& f);
92  void DdagD(Field& v, const Field& f);
93  void DDdag(Field& v, const Field& f);
94  void H(Field& v, const Field& f);
95 
96  // ieo=0: even <-- odd
97  // ieo=1: odd <-- even
98 
99  void Meo(Field&, const Field&, const int ieo);
100  void Mdageo(Field&, const Field&, const int ieo);
101  void MeoMoe(Field& v, const Field& f);
102  void Meo_gm5(Field&, const Field&, const int ieo);
103 
104  void mult_gm5(Field&, const Field&);
105 
107  void gm5p(const int mu, Field&, const Field& v);
108 
109  int field_nvol() { return CommonParameters::Nvol() / 2; }
111  int field_nex() { return 1; }
112 
114  double flop_count();
115 
116  void mult_p(int mu, Field_F&, const Field_F&, const int ieo);
117  void mult_m(int mu, Field_F&, const Field_F&, const int ieo);
118 
119  private:
120  void init(const std::string);
121 
122  /*
123  void mult_xp(Field_F&, const Field_F&, const int ieo);
124  void mult_xm(Field_F&, const Field_F&, const int ieo);
125  void mult_yp(Field_F&, const Field_F&, const int ieo);
126  void mult_ym(Field_F&, const Field_F&, const int ieo);
127  void mult_zp(Field_F&, const Field_F&, const int ieo);
128  void mult_zm(Field_F&, const Field_F&, const int ieo);
129  void mult_tp(Field_F&, const Field_F&, const int ieo);
130  void mult_tm(Field_F&, const Field_F&, const int ieo);
131  */
132 };
133 #endif
void prePropD(Field &, Field &, const Field &)
BridgeIO vout
Definition: bridgeIO.cpp:207
void prePropDag(Field &, Field &, const Field &)
void MeoMoe(Field &, const Field &)
Implementation of even-odd Wilson fermion operator.
void Meo_gm5(Field &, const Field &, const int ieo)
void set_parameters(const double kappa, const std::valarray< int > bc)
Container of Field-type object.
Definition: field.h:37
void DdagD(Field &v, const Field &f)
Even-odd site index.
Definition: index_eo.h:39
void mult_gm5(Field &, const Field &)
void postPropDag(Field &, const Field &, const Field &)
Wilson-type fermion field.
Definition: field_F.h:37
std::valarray< GammaMatrix > m_GM
void Meo(Field &, const Field &, const int ieo)
void postPropD(Field &, const Field &, const Field &)
SU(N) gauge field.
Definition: field_G.h:36
void DDdag(Field &v, const Field &f)
void Mdageo(Field &, const Field &, const int ieo)
Common parameter class: provides parameters as singleton.
Methods to shift the even-odd field.
Definition: shiftField_eo.h:45
void H(Field &v, const Field &f)
void D(Field &v, const Field &f)
VerboseLevel
Definition: bridgeIO.h:25
std::valarray< int > m_boundary
boundary condition.
void Ddag(Field &v, const Field &f)
void mult_m(int mu, Field_F &, const Field_F &, const int ieo)
double flop_count()
this returns the number of floating point operations of Meo.
void mult_p(int mu, Field_F &, const Field_F &, const int ieo)
std::string m_repr
Dirac matrix representation.
void gm5p(const int mu, Field &, const Field &v)
gamma_5 (1 - gamma_mu) v(x + mu) used in force calculation.