Bridge++  Ver. 1.3.x
fopr_Wilson_General.h
Go to the documentation of this file.
1 
14 #ifndef FOPR_WILSON_GENERAL_INCLUDED
15 #define FOPR_WILSON_GENERAL_INCLUDED
16 
17 #include <string>
18 #include <cassert>
19 
20 #include "fopr.h"
21 #include "field_F.h"
22 
23 #ifdef USE_PARAMETERS_FACTORY
24 #include "parameters_factory.h"
25 #endif
26 
27 #include "bridgeIO.h"
28 using Bridge::vout;
29 
31 
39 //- parameters class
41 {
42  public:
44 };
45 //- end
46 
47 class Fopr_Wilson_General : public Fopr
48 {
49  public:
50  static const std::string class_name;
51 
52  public:
53  // interface definitions
54 
56  Fopr_Wilson_General(std::string repr);
57 
59 
60  void set_parameters(const Parameters& params);
61  void set_parameters(const double kappa_s, const double kappa_t,
62  const double nu_s, const double r_s,
63  const std::vector<int> bc);
64 
65  void set_config(Field *U);
66 
68  {
69  set_config(U.get());
70  }
71 
72  void set_mode(std::string mode);
73 
74  std::string get_mode() const;
75 
76  void mult(Field& v, const Field& f);
77  void mult_dag(Field& v, const Field& f);
78  void mult_gm5(Field& w, const Field& v);
79  void proj_chiral(Field& w, const int ex1,
80  const Field& v, const int ex2, const int ipm);
81 
82  void D(Field& w, const Field& v);
83  void Ddag(Field& w, const Field& v);
84  void DdagD(Field& w, const Field& v);
85  void DDdag(Field& w, const Field& v);
86  void H(Field& w, const Field& v);
87 
89  void D_ex(Field& w, const int ex1, const Field& v, const int ex2);
90 
92  // void gm5p(Field_F& v, const int mu, const Field_F& w);
93 
94  void mult_gm5p(int mu, Field_F& v, const Field_F& w);
95 
97  void mult_up(int mu, Field& w, const Field& v);
98  void mult_dn(int mu, Field& w, const Field& v);
99 
101  { return CommonParameters::Nvol(); }
102  int field_nin()
103  { return 2 * CommonParameters::Nc() * CommonParameters::Nd(); }
104  int field_nex()
105  { return 1; }
106 
108  double flop_count();
109 
110  private:
111  // pimple prescription for Fopr_Wilson_General class implementation.
113 
115 };
116 #endif
BridgeIO vout
Definition: bridgeIO.cpp:278
void set_config(Field *U)
setting pointer to the gauge configuration.
Container of Field-type object.
Definition: field.h:39
void DdagD(Field &w, const Field &v)
std::string get_mode() const
only for Fopr_Overlap
void set_parameters(const Parameters &params)
Class for parameters.
Definition: parameters.h:38
int field_nvol()
returns the volume for which the fermion operator is defined.
void DDdag(Field &w, const Field &v)
void H(Field &w, const Field &v)
Wilson-type fermion field.
Definition: field_F.h:37
void D(Field &w, const Field &v)
void mult_dn(int mu, Field &w, const Field &v)
void mult(Field &v, const Field &f)
multiplies fermion operator to a given field (2nd argument)
int field_nex()
returns the external d.o.f. for which the fermion operator is defined.
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.
void mult_up(int mu, Field &w, const Field &v)
adding the hopping to nearest neighbor site in mu-th direction.
pointer get() const
int field_nin()
returns the on-site d.o.f. for which the fermion operator is defined.
Fopr_Wilson_General_impl * m_impl
void mult_gm5(Field &w, const Field &v)
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
double flop_count()
this returns the number of floating point number operations.
void Ddag(Field &w, const Field &v)
static const std::string class_name
void mult_dag(Field &v, const Field &f)
hermitian conjugate of mult(Field&, const Field&).
void mult_gm5p(int mu, Field_F &v, const Field_F &w)
this function is used for derivatives in force calculation.
Base class of fermion operator family.
Definition: fopr.h:49
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
void set_config(unique_ptr< Field_G > &U)
Wilson_General fermion operator.