Go to the documentation of this file.
19 #ifdef USE_FACTORY_AUTOREGISTER
21 bool init = Fopr_WilsonGeneral::register_factory();
66 }
else if (
m_mode ==
"Ddag") {
69 }
else if (
m_mode ==
"DdagD") {
72 }
else if (
m_mode ==
"DDdag") {
75 }
else if (
m_mode ==
"H") {
101 double kappa_s, kappa_t;
106 err += params.
fetch_double(
"hopping_parameter_spatial", kappa_s);
107 err += params.
fetch_double(
"hopping_parameter_temporal", kappa_t);
108 err += params.
fetch_double(
"dispersion_parameter_spatial", nu_s);
109 err += params.
fetch_double(
"Wilson_parameter_spatial", r_s);
136 const double kappa_t,
139 const std::vector<int> bc)
147 for (
int mu = 0; mu <
m_Ndim; ++mu) {
153 assert(bc.size() ==
m_Ndim);
174 for (
int mu = 0; mu <
m_Ndim; ++mu) {
194 for (
int mu = 0; mu <
m_Ndim; ++mu) {
207 assert(v.
nex() == f.
nex());
208 assert(v.
nin() == f.
nin());
219 const int ex1,
const Field& v,
const int ex2,
const int ipm)
221 assert(ipm == 1 || ipm == -1);
230 }
else if (ipm == -1) {
276 for (
int ex = 0; ex < f.
nex(); ++ex) {
286 }
else if (mu == (
m_Ndim - 1)) {
287 for (
int ex = 0; ex < f.
nex(); ++ex) {
309 for (
int ex = 0; ex < f.
nex(); ++ex) {
318 }
else if (mu == (
m_Ndim - 1)) {
319 for (
int ex = 0; ex < f.
nex(); ++ex) {
349 int flop_per_site = Nc * Nd * 2 * 8 * (4 * Nc - 1);
351 flop_per_site += Nc * Nd * 2 * (4 * 3 + 4 * 2);
352 flop_per_site += Nc * Nd * 2 * 8;
353 flop_per_site += Nc * Nd * 2 * 2;
355 double gflop = flop_per_site * (Nvol * (NPE / 1.0e+9));
std::string get_mode() const
Set of Gamma Matrices: basis class.
void init(const std::string repr)
void setpart_ex(int ex, const Field &w, int exw)
void Ddag(Field &w, const Field &f)
void set_string(const string &key, const string &value)
void forward(Field &, const Field &, const int mu)
void mult_GM(Field_F &y, const GammaMatrix &gm, const Field_F &x)
gamma matrix multiplication
void set(const int jin, const int site, const int jex, double v)
void D_ex(Field &v, const int ex1, const Field &f, const int ex2)
void DdagD(Field &w, const Field &f)
void set_double(const string &key, const double value)
void mult_undef(Field &, const Field &f)
std::vector< int > m_boundary
void mult_up(const int mu, Field &w, const Field &f)
upward nearest neighbor hopping term.
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
void mult_Field_Gd(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2)
void mult_GMproj2(Field_F &y, const int pm, const GammaMatrix &gm, const Field_F &x)
projection with gamma matrix: (1 \pm gamma)
void(Fopr_WilsonGeneral::* m_mult)(Field &, const Field &)
void mult_dn(const int mu, Field &w, const Field &f)
downward nearest neighbor hopping term.
Bridge::VerboseLevel m_vl
void D(Field &v, const Field &f)
void H(Field &w, const Field &f)
void addpart_ex(int ex, const Field &w, int exw)
int fetch_int_vector(const string &key, vector< int > &value) const
void DDdag(Field &w, const Field &f)
double flop_count()
this returns the number of floating point operations.
const Field_F mult_gm5p(const int mu, const Field_F &w)
static const std::string class_name
void(Fopr_WilsonGeneral::* m_mult_dag)(Field &, const Field &)
void set_int_vector(const string &key, const vector< int > &value)
std::vector< GammaMatrix > m_GM
void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
static Bridge::VerboseLevel Vlevel()
static VerboseLevel set_verbose_level(const std::string &str)
void backward(Field &, const Field &, const int mu)
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
void mult_Field_Gn(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2)
void scal(Field &x, const double a)
scal(x, a): x = a * x
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
int fetch_string(const string &key, string &value) const
Wilson-type fermion field.
int fetch_double(const string &key, double &value) const
GammaMatrix get_GM(GMspecies spec)
void crucial(const char *format,...)
Container of Field-type object.
void general(const char *format,...)
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
static std::string get_verbose_level(const VerboseLevel vl)
void mult_gm5(Field &v, const Field &f)
multiplies gamma_5 matrix.