Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fopr_Wilson.h
Go to the documentation of this file.
1 
14 #ifndef FOPR_WILSON_INCLUDED
15 #define FOPR_WILSON_INCLUDED
16 
17 #include <valarray>
18 #include <string>
19 #include <cassert>
20 
21 #include "fopr.h"
22 #include "field_F.h"
23 
24 #include "bridgeIO.h"
25 using Bridge::vout;
26 
28 
45 //- parameters class
46 class Parameters_Fopr_Wilson : virtual public Parameters
47 {
48  public:
50 };
51 //- end
52 
53 class Fopr_Wilson : public Fopr
54 {
55  public:
56  static const std::string class_name;
57 
58  public:
59  // interface definitions
60 
61  Fopr_Wilson();
62  Fopr_Wilson(std::string repr);
63 
64  ~Fopr_Wilson();
65 
66  void set_parameters(const Parameters& params);
67  void set_parameters(const double kappa, const std::valarray<int> bc);
68 
69  void set_config(Field *U);
70 
71  void set_mode(std::string mode);
72 
73  std::string get_mode() const;
74 
75  inline const Field mult(const Field& f)
76  {
77  Field v(f.nin(), f.nvol(), f.nex());
78 
79  mult(v, f);
80  return v;
81  }
82 
83  inline const Field mult_dag(const Field& f)
84  {
85  Field v(f.nin(), f.nvol(), f.nex());
86 
87  mult_dag(v, f);
88  return v;
89  }
90 
91  inline const Field mult_gm5(const Field& f)
92  {
93  Field v(f.nin(), f.nvol(), f.nex());
94 
95  mult_gm5(v, f);
96  return v;
97  }
98 
99  void mult(Field& v, const Field& f);
100  void mult_dag(Field& v, const Field& f);
101  void mult_gm5(Field& w, const Field& v);
102  void proj_chiral(Field& w, const int ex1,
103  const Field& v, const int ex2, const int ipm);
104 
105  void D(Field& w, const Field& v);
106  void Ddag(Field& w, const Field& v);
107  void DdagD(Field& w, const Field& v);
108  void DDdag(Field& w, const Field& v);
109  void H(Field& w, const Field& v);
110 
112  void D_ex(Field& w, const int ex1, const Field& v, const int ex2);
113 
115 // void gm5p(Field_F& v, const int mu, const Field_F& w);
116 
117  const Field_F mult_gm5p(int mu, const Field_F& w);
118  void mult_gm5p(int mu, Field_F& v, const Field_F& w);
119 
121  void mult_up(int mu, Field& w, const Field& v);
122  void mult_dn(int mu, Field& w, const Field& v);
123 
124  // void fprop_normalize(Field& v);
125  // void fopr_normalize(Field& v);
126 
127  // const double get_fprop_normfactor();
128  // const double get_fopr_normfactor();
129 
131  { return CommonParameters::Nvol(); }
132  int field_nin()
133  { return 2 * CommonParameters::Nc() * CommonParameters::Nd(); }
134  int field_nex()
135  { return 1; }
136 
138  double flop_count();
139 
140  private:
141  // pimple prescription for Fopr_Wilson class implementation.
143 
145 };
146 #endif
BridgeIO vout
Definition: bridgeIO.cpp:207
int field_nvol()
returns the volume for which the fermion operator is defined.
Definition: fopr_Wilson.h:130
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
void D(Field &w, const Field &v)
const Field mult(const Field &f)
multiplies fermion operator to a given field and returns the resultant field.
Definition: fopr_Wilson.h:75
const Field mult_dag(const Field &f)
hermitian conjugate of mult(const Field&amp;).
Definition: fopr_Wilson.h:83
Container of Field-type object.
Definition: field.h:37
int nvol() const
Definition: field.h:101
void mult_up(int mu, Field &w, const Field &v)
adding the hopping to nearest neighbor site in mu-th direction.
Class for parameters.
Definition: parameters.h:40
const Field_F mult_gm5p(int mu, const Field_F &w)
this function is used for derivatives in force calculation.
Wilson-type fermion field.
Definition: field_F.h:37
int nin() const
Definition: field.h:100
int field_nin()
returns the on-site d.o.f. for which the fermion operator is defined.
Definition: fopr_Wilson.h:132
void D_ex(Field &w, const int ex1, const Field &v, const int ex2)
this function is assumed to be exclusively used from domain-wall fermions.
Wilson fermion operator.
Definition: fopr_Wilson.h:46
void set_config(Field *U)
setting pointer to the gauge configuration.
Definition: fopr_Wilson.cpp:87
void DdagD(Field &w, const Field &v)
void mult_dn(int mu, Field &w, const Field &v)
void set_parameters(const Parameters &params)
Definition: fopr_Wilson.cpp:48
int nex() const
Definition: field.h:102
static const std::string class_name
Definition: fopr_Wilson.h:56
void Ddag(Field &w, const Field &v)
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Definition: fopr_Wilson.cpp:91
void DDdag(Field &w, const Field &v)
int field_nex()
returns the external d.o.f. for which the fermion operator is defined.
Definition: fopr_Wilson.h:134
Wilson fermion operator.
std::string get_mode() const
Definition: fopr_Wilson.cpp:95
void H(Field &w, const Field &v)
Base class of fermion operator family.
Definition: fopr.h:39
double flop_count()
this returns the number of floating point number operations.
const Field mult_gm5(const Field &f)
Definition: fopr_Wilson.h:91
Fopr_Wilson_impl * m_impl
Definition: fopr_Wilson.h:142