Bridge++  Ver. 1.3.x
fopr_Wilson.h
Go to the documentation of this file.
1 
14 #ifndef FOPR_WILSON_INCLUDED
15 #define FOPR_WILSON_INCLUDED
16 
17 #include <string>
18 #include <cassert>
19 
20 #include "fopr.h"
21 #include "field_F.h"
22 
23 #include "bridgeIO.h"
24 using Bridge::vout;
25 
27 
46 //- parameters class
47 class Parameters_Fopr_Wilson : virtual public Parameters
48 {
49  public:
51 };
52 //- end
53 
54 class Fopr_Wilson : public Fopr
55 {
56  public:
57  static const std::string class_name;
58 
59  public:
60  // interface definitions
61 
62  Fopr_Wilson();
63  Fopr_Wilson(std::string repr);
64 
65  ~Fopr_Wilson();
66 
67  void set_parameters(const Parameters& params);
68  void set_parameters(const double kappa, const std::vector<int> bc);
69 
70  void set_config(Field *U);
71 
73  {
74  set_config(U.get());
75  }
76 
77  void set_mode(std::string mode);
78 
79  std::string get_mode() const;
80 
81  void mult(Field& v, const Field& f);
82  void mult_dag(Field& v, const Field& f);
83  void mult_gm5(Field& w, const Field& v);
84  void proj_chiral(Field& w, const int ex1,
85  const Field& v, const int ex2, const int ipm);
86 
87  void D(Field& w, const Field& v);
88  void Ddag(Field& w, const Field& v);
89  void DdagD(Field& w, const Field& v);
90  void DDdag(Field& w, const Field& v);
91  void H(Field& w, const Field& v);
92 
94  void D_ex(Field& w, const int ex1, const Field& v, const int ex2);
95 
97  void mult_gm5p(int mu, Field_F& v, const Field_F& w);
98 
100  void mult_up(int mu, Field& w, const Field& v);
101  void mult_dn(int mu, Field& w, const Field& v);
102 
103 
105  { return CommonParameters::Nvol(); }
106  int field_nin()
107  { return 2 * CommonParameters::Nc() * CommonParameters::Nd(); }
108  int field_nex()
109  { return 1; }
110 
112  double flop_count();
113 
114  private:
115  // pimple prescription for Fopr_Wilson class implementation.
117 
119 };
120 #endif
BridgeIO vout
Definition: bridgeIO.cpp:278
int field_nvol()
returns the volume for which the fermion operator is defined.
Definition: fopr_Wilson.h:104
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
void D(Field &w, const Field &v)
Container of Field-type object.
Definition: field.h:39
void set_config(unique_ptr< Field_G > &U)
Definition: fopr_Wilson.h:72
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:38
void mult_gm5p(int mu, Field_F &v, const Field_F &w)
this function is used for derivatives in force calculation.
Wilson-type fermion field.
Definition: field_F.h:37
int field_nin()
returns the on-site d.o.f. for which the fermion operator is defined.
Definition: fopr_Wilson.h:106
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:47
void set_config(Field *U)
setting pointer to the gauge configuration.
void mult(Field &v, const Field &f)
multiplies fermion operator to a given field (2nd argument)
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:65
pointer get() const
static const std::string class_name
Definition: fopr_Wilson.h:57
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...
void DDdag(Field &w, const Field &v)
void mult_gm5(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:108
Wilson fermion operator.
std::string get_mode() const
only for Fopr_Overlap
void H(Field &w, const Field &v)
Base class of fermion operator family.
Definition: fopr.h:49
double flop_count()
this returns the number of floating point number operations.
void mult_dag(Field &v, const Field &f)
hermitian conjugate of mult(Field&, const Field&).
Fopr_Wilson_impl * m_impl
Definition: fopr_Wilson.h:116