Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fopr_Wilson.cpp
Go to the documentation of this file.
1 
14 #include "fopr_Wilson.h"
15 #include "fopr_Wilson_impl.h"
16 
17 #ifdef USE_PARAMETERS_FACTORY
18 #include "parameters_factory.h"
19 #endif
20 
21 using std::valarray;
22 
23 //- parameter entries
24 namespace {
25  void append_entry(Parameters& param)
26  {
27  param.Register_string("gamma_matrix_type", "NULL");
28  param.Register_double("hopping_parameter", 0.0);
29  param.Register_int_vector("boundary_condition", std::valarray<int>());
30 
31  param.Register_string("verbose_level", "NULL");
32  }
33 
34 
35 #ifdef USE_PARAMETERS_FACTORY
36  bool init_param = ParametersFactory::Register("Fopr.Wilson", append_entry);
37 #endif
38 }
39 //- end
40 
41 //- parameters class
43 //- end
44 
45 const std::string Fopr_Wilson::class_name = "Fopr_Wilson";
46 
47 //====================================================================
49 {
50  const string str_vlevel = params.get_string("verbose_level");
51 
52  m_vl = vout.set_verbose_level(str_vlevel);
53 
54  //- fetch and check input parameters
55  double kappa;
56  valarray<int> bc;
57 
58  int err = 0;
59  err += params.fetch_double("hopping_parameter", kappa);
60  err += params.fetch_int_vector("boundary_condition", bc);
61 
62  if (err) {
63  vout.crucial(m_vl, "%s: fetch error, input parameter not found.\n", class_name.c_str());
64  abort();
65  }
66 
67  set_parameters(kappa, bc);
68 }
69 
70 //====================================================================
71 void Fopr_Wilson::set_parameters(const double kappa, const std::valarray<int> bc)
72 { m_impl->set_parameters(kappa, bc); }
73 
74 //====================================================================
76 { m_impl->init("Dirac"); }
77 
78 //====================================================================
79 Fopr_Wilson::Fopr_Wilson(std::string repr) : Fopr(), m_impl(new Fopr_Wilson_impl)
80 { m_impl->init(repr); }
81 
82 //====================================================================
84 
85 
86 //====================================================================
88 { m_impl->set_config(U); }
89 
90 //====================================================================
91 void Fopr_Wilson::set_mode(std::string mode)
92 { m_impl->set_mode(mode); }
93 
94 //====================================================================
95 std::string Fopr_Wilson::get_mode() const
96 { return m_impl->get_mode(); }
97 
98 
99 //====================================================================
100 void Fopr_Wilson::mult(Field& v, const Field& f)
101 { m_impl->mult(v, f); }
102 
103 //====================================================================
105 { m_impl->mult_dag(v, f); }
106 
107 //====================================================================
108 void Fopr_Wilson::proj_chiral(Field& w, const int ex1,
109  const Field& v, const int ex2, const int ipm)
110 { m_impl->proj_chiral(w, ex1, v, ex2, ipm); }
111 
112 //====================================================================
114 { m_impl->mult_gm5(w, v); }
115 
116 
117 //====================================================================
118 void Fopr_Wilson::D(Field& w, const Field& v)
119 { m_impl->D(w, v); }
120 
121 //====================================================================
122 void Fopr_Wilson::Ddag(Field& w, const Field& v)
123 { m_impl->Ddag(w, v); }
124 
125 //====================================================================
126 void Fopr_Wilson::DdagD(Field& w, const Field& v)
127 { m_impl->DdagD(w, v); }
128 
129 //====================================================================
130 void Fopr_Wilson::DDdag(Field& w, const Field& v)
131 { m_impl->DDdag(w, v); }
132 
133 //====================================================================
134 void Fopr_Wilson::H(Field& w, const Field& v)
135 { m_impl->H(w, v); }
136 
137 //====================================================================
138 const Field_F Fopr_Wilson::mult_gm5p(int mu, const Field_F& w)
139 { return m_impl->mult_gm5p(mu, w); }
140 
141 //====================================================================
142 void Fopr_Wilson::mult_gm5p(int mu, Field_F& v, const Field_F& w)
143 { m_impl->mult_gm5p(mu, v, w); }
144 
145 //====================================================================
146 // void Fopr_Wilson::gm5p(Field_F& v, const int mu, const Field_F& w)
147 // { m_impl->gm5p(v, mu, w); }
148 
149 //====================================================================
150 void Fopr_Wilson::D_ex(Field& w, const int ex1,
151  const Field& v, const int ex2)
152 { m_impl->D_ex(w, ex1, v, ex2); }
153 
154 //====================================================================
156 void Fopr_Wilson::mult_up(int mu, Field& w, const Field& v)
157 { m_impl->mult_up(mu, w, v); }
158 
159 //====================================================================
160 void Fopr_Wilson::mult_dn(int mu, Field& w, const Field& v)
161 { m_impl->mult_dn(mu, w, v); }
162 
163 //====================================================================
165 { return m_impl->flop_count(); }
166 
167 //====================================================================
168 
169 /*
170 void Fopr_Wilson::fprop_normalize(Field& v)
171 { m_impl->fprop_normalize(v); }
172 
173 //====================================================================
174 void Fopr_Wilson::fopr_normalize(Field& v)
175 { m_impl->fopr_normalize(v); }
176 
177 //====================================================================
178 const double Fopr_Wilson::get_fprop_normfactor()
179 { return m_impl->get_fprop_normfactor(); }
180 
181 //====================================================================
182 const double Fopr_Wilson::get_fopr_normfactor()
183 { return m_impl->get_fopr_normfactor(); }
184 */
185 //====================================================================
186 //============================================================END=====
BridgeIO vout
Definition: bridgeIO.cpp:207
void Register_string(const string &, const string &)
Definition: parameters.cpp:352
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
void set_parameters(const double kappa, const std::valarray< int > bc)
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
void mult_dag(Field &v, const Field &f)
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
void D_ex(Field &v, const int ex1, const Field &f, const int ex2)
void D(Field &v, const Field &f)
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
void H(Field &w, const Field &f)
int fetch_int_vector(const string &key, std::valarray< int > &val) const
Definition: parameters.cpp:176
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
void DdagD(Field &w, const Field &f)
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 set_config(Field *U)
setting pointer to the gauge configuration.
Definition: fopr_Wilson.cpp:87
void DDdag(Field &w, const Field &f)
Bridge::VerboseLevel m_vl
Definition: fopr.h:99
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
static const std::string class_name
Definition: fopr_Wilson.h:56
const Field_F mult_gm5p(int mu, const Field_F &w)
void Ddag(Field &w, const Field &v)
void crucial(const char *format,...)
Definition: bridgeIO.cpp:26
void set_mode(std::string mode)
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)
static bool Register(const std::string &realm, const creator_callback &cb)
Wilson fermion operator.
void mult_up(int mu, Field &, const Field &)
void mult(Field &v, const Field &f)
void mult_gm5(Field &v, const Field &f)
void Register_double(const string &, const double)
Definition: parameters.cpp:324
std::string get_mode() const
Definition: fopr_Wilson.cpp:95
void Register_int_vector(const string &, const std::valarray< int > &)
Definition: parameters.cpp:345
void H(Field &w, const Field &v)
Base class of fermion operator family.
Definition: fopr.h:39
int fetch_double(const string &key, double &val) const
Definition: parameters.cpp:124
double flop_count()
this returns the number of floating point number operations.
string get_string(const string &key) const
Definition: parameters.cpp:85
void mult_dn(int mu, Field &, const Field &)
void Ddag(Field &w, const Field &f)
void init(std::string repr)
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:191
const Field mult_gm5(const Field &f)
Definition: fopr_Wilson.h:91
Fopr_Wilson_impl * m_impl
Definition: fopr_Wilson.h:142