Bridge++  Ver. 2.0.2
fopr_Wilson_SF.h
Go to the documentation of this file.
1 
15 #ifndef FOPR_WILSON_SF_INCLUDED
16 #define FOPR_WILSON_SF_INCLUDED
17 
18 #include "fopr_Wilson.h"
19 
20 //#include "Field/field_F_SF.h"
21 
22 #include "IO/bridgeIO.h"
23 using Bridge::vout;
24 
26 
51 class Fopr_Wilson_SF : public Fopr
52 {
53  public:
54  static const std::string class_name;
55 
56  private:
58 
60  double m_kappa;
61  std::vector<int> m_boundary;
62  std::string m_repr;
63 
64  std::string m_mode;
65 
67  const Field_G *m_U;
68 
70 
71  public:
72 
74 
75  Fopr_Wilson_SF(const Parameters& params)
76  {
77  init();
78  set_parameters(params);
79  }
80 
81  void set_parameters(const Parameters& params);
82  void set_parameters(const double kappa, const std::vector<int> bc);
83 
84  void get_parameters(Parameters& params) const;
85 
86  void set_config(Field *U);
87 
89 
90  void mult(Field& v, const Field& f);
91 
92  void mult_dag(Field& v, const Field& f);
93 
94  void mult(Field& v, const Field& f, const std::string mode);
95 
96  void mult_dag(Field& v, const Field& f, const std::string mode);
97 
98  void set_mode(const std::string mode);
99 
100  std::string get_mode() const { return m_mode; }
101 
102  void DdagD(Field&, const Field&);
103  void D(Field&, const Field&);
104  void Ddag(Field&, const Field&);
105  void H(Field&, const Field&);
106 
107  void mult_gm5(Field& v, const Field& w);
108 
109  void mult_gm5p(const int mu, Field& v, const Field& w);
110 
111  int field_nvol() { return m_Nvol; }
112  int field_nin() { return 2 * m_Nc * m_Nd; }
113  int field_nex() { return 1; }
114 
116  double flop_count();
117 
118  private:
119  void init();
120 
121  void tidyup(); // { delete m_fopr_w; }
122 
124  void set_boundary_zero(Field&);
125 
126 #ifdef USE_FACTORY
127  private:
128  static Fopr *create_object()
129  {
130  return new Fopr_Wilson_SF();
131  }
132 
133  static Fopr *create_object_with_params(const Parameters& params)
134  {
135  return new Fopr_Wilson_SF(params);
136  }
137 
138  public:
139  static bool register_factory()
140  {
141  bool init = true;
142  init &= Fopr::Factory_noarg::Register("Wilson_SF", create_object);
143  init &= Fopr::Factory_params::Register("Wilson_SF",
144  create_object_with_params);
145  return init;
146  }
147 #endif
148 };
149 #endif
bridgeIO.h
Fopr_Wilson_SF::m_Nvol
int m_Nvol
Definition: fopr_Wilson_SF.h:59
Fopr_Wilson_SF::field_nex
int field_nex()
returns the external degree of freedom of the fermion field.
Definition: fopr_Wilson_SF.h:113
AFopr< Field >
Fopr_Wilson_SF::H
void H(Field &, const Field &)
Definition: fopr_Wilson_SF.cpp:262
Fopr_Wilson_SF::set_mode
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Definition: fopr_Wilson_SF.cpp:231
Fopr_Wilson_SF::flop_count
double flop_count()
this returns the number of floating point operations.
Definition: fopr_Wilson_SF.cpp:309
Fopr_Wilson_SF::set_parameters
void set_parameters(const Parameters &params)
sets parameters by a Parameter object: to be implemented in a subclass.
Definition: fopr_Wilson_SF.cpp:65
Parameters
Class for parameters.
Definition: parameters.h:46
Fopr_Wilson_SF::set_config
void set_config(Field *U)
sets the gauge configuration.
Definition: fopr_Wilson_SF.cpp:140
Fopr_Wilson_SF::set_boundary_zero
void set_boundary_zero(Field &)
A function to set the fermion field to zero at the t=0 boundary.
Fopr_Wilson_SF::m_Nd
int m_Nd
Definition: fopr_Wilson_SF.h:59
Fopr_Wilson_SF::init
void init()
Definition: fopr_Wilson_SF.cpp:29
Fopr_Wilson_SF::m_mode
std::string m_mode
Definition: fopr_Wilson_SF.h:64
Fopr_Wilson_SF::DdagD
void DdagD(Field &, const Field &)
Definition: fopr_Wilson_SF.cpp:243
Fopr_Wilson_SF::get_mode
std::string get_mode() const
Definition: fopr_Wilson_SF.h:100
Fopr_Wilson_SF::mult_gm5p
void mult_gm5p(const int mu, Field &v, const Field &w)
Definition: fopr_Wilson_SF.cpp:290
Fopr_Wilson_SF::m_w2
Field m_w2
Definition: fopr_Wilson_SF.h:69
fopr_Wilson.h
Fopr_Wilson_SF::m_repr
std::string m_repr
Definition: fopr_Wilson_SF.h:62
Fopr_Wilson_SF::mult_gm5
void mult_gm5(Field &v, const Field &w)
multiplies gamma_5 matrix.
Definition: fopr_Wilson_SF.cpp:270
Fopr_Wilson_SF::mult
void mult(Field &v, const Field &f)
multiplies fermion operator to a given field.
Definition: fopr_Wilson_SF.cpp:153
Fopr_Wilson_SF::m_vl
Bridge::VerboseLevel m_vl
Definition: fopr_Wilson_SF.h:57
Fopr_Wilson_SF::m_U
const Field_G * m_U
Definition: fopr_Wilson_SF.h:67
Fopr_Wilson_SF::m_boundary
std::vector< int > m_boundary
Definition: fopr_Wilson_SF.h:61
Fopr_Wilson_SF::field_nin
int field_nin()
returns the on-site degree of freedom of the fermion field.
Definition: fopr_Wilson_SF.h:112
Fopr_Wilson_SF::get_parameters
void get_parameters(Parameters &params) const
gets parameters by a Parameter object: to be implemented in a subclass.
Definition: fopr_Wilson_SF.cpp:129
Fopr_Wilson_SF::Fopr_Wilson_SF
Fopr_Wilson_SF()
Definition: fopr_Wilson_SF.h:73
Fopr_Wilson_SF::Ddag
void Ddag(Field &, const Field &)
Definition: fopr_Wilson_SF.cpp:253
Fopr_Wilson_SF::D
void D(Field &, const Field &)
Definition: fopr_Wilson_SF.cpp:277
Fopr_Wilson_SF::m_w1
Field m_w1
Definition: fopr_Wilson_SF.h:69
Fopr_Wilson_SF::class_name
static const std::string class_name
Definition: fopr_Wilson_SF.h:54
Fopr_Wilson_SF::m_Ndim
int m_Ndim
Definition: fopr_Wilson_SF.h:59
Fopr_Wilson_SF::m_NinF
int m_NinF
Definition: fopr_Wilson_SF.h:59
Fopr_Wilson_SF::mult_dag
void mult_dag(Field &v, const Field &f)
hermitian conjugate of mult.
Definition: fopr_Wilson_SF.cpp:172
Fopr_Wilson_SF::Fopr_Wilson_SF
Fopr_Wilson_SF(const Parameters &params)
Definition: fopr_Wilson_SF.h:75
Fopr_Wilson_SF::tidyup
void tidyup()
Definition: fopr_Wilson_SF.cpp:58
Field
Container of Field-type object.
Definition: field.h:46
Fopr_Wilson_SF::m_Nc
int m_Nc
Definition: fopr_Wilson_SF.h:59
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Fopr_Wilson_SF::m_fopr_w
Fopr_Wilson * m_fopr_w
Definition: fopr_Wilson_SF.h:66
Fopr_Wilson_SF::~Fopr_Wilson_SF
~Fopr_Wilson_SF()
Definition: fopr_Wilson_SF.h:88
Org::Fopr_Wilson
Definition: fopr_Wilson_impl.h:38
Fopr_Wilson_SF
Wilson fermion operator with SF BC.
Definition: fopr_Wilson_SF.h:51
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512
Fopr_Wilson_SF::m_kappa
double m_kappa
Definition: fopr_Wilson_SF.h:60
Fopr_Wilson_SF::field_nvol
int field_nvol()
returns the volume of the fermion field.
Definition: fopr_Wilson_SF.h:111