24 Fopr *create_object_with_arg(
const std::string& repr)
30 bool init1 = Fopr::Factory_noarg::Register(
"Clover_General", create_object);
31 bool init2 = Fopr::Factory_string::Register(
"Clover_General", create_object_with_arg);
53 #ifdef USE_PARAMETERS_FACTORY
99 const std::string str_vlevel = params.
get_string(
"verbose_level");
104 double kappa_s, kappa_t;
110 err += params.
fetch_double(
"hopping_parameter_spatial", kappa_s);
111 err += params.
fetch_double(
"hopping_parameter_temporal", kappa_t);
112 err += params.
fetch_double(
"dispersion_parameter_spatial", nu_s);
113 err += params.
fetch_double(
"Wilson_parameter_spatial", r_s);
114 err += params.
fetch_double(
"clover_coefficient_spatial", cSW_s);
115 err += params.
fetch_double(
"clover_coefficient_temporal", cSW_t);
130 double nu_s,
double r_s,
131 double cSW_s,
double cSW_t,
142 for (
int mu = 0; mu <
m_Ndim; ++mu) {
148 assert(bc.size() ==
m_Ndim);
158 for (
int mu = 0; mu <
m_Ndim; ++mu) {
183 flop_csw +=
static_cast<double>(2 *
m_Nc *
m_Nd * Lvol);
185 double flop = flop_w + flop_csw;
187 if ((
m_mode ==
"DdagD") || (
m_mode ==
"DDdag")) flop += flop_csw;
197 assert(f.
nex() == 1);
246 const int mu,
const int nu)
void Register_int_vector(const string &, const std::vector< int > &)
void DDdag(Field &, const Field &)
double flop_count()
this returns the number of floating point operations.
double flop_count()
this returns the number of floating point operations.
void H(Field &, const Field &)
Fopr_CloverTerm_General * m_fopr_csw
Clover term operator.
void Register_string(const string &, const string &)
int m_NinF
internal parameters
static const std::string class_name
double m_cSW_s
spatial clover coefficient
void general(const char *format,...)
Container of Field-type object.
double m_kappa_s
spatial hopping parameter
void D(Field &, const Field &)
Parameters_Fopr_Clover_General()
void set_parameters(const Parameters ¶ms)
double m_nu_s
spatial anisotopy parameter
std::string m_repr
gamma matrix representation
void mult_gm5(Field &v, const Field &w)
std::string m_mode
mode of multiplication
Wilson-type fermion field.
void D(Field &w, const Field &v)
double m_cSW_t
temporal clover coefficient
void set_parameters(const Parameters ¶ms)
Fopr_Wilson_General * m_fopr_w
Wilson fermion kernel.
const Field_G * m_U
gauge configuration (pointer)
Bridge::VerboseLevel m_vl
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
double m_kappa_t
temporal hopping parameter
void mult_isigma(Field_F &, const Field_F &, const int mu, const int nu)
void set_parameters(const Parameters ¶ms)
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
void crucial(const char *format,...)
void mult_sigmaF(Field &, const Field &)
double flop_count()
this returns the number of floating point number operations.
void DdagD(Field &, const Field &)
static bool Register(const std::string &realm, const creator_callback &cb)
double m_r_s
spatial Wilson parameter
void Register_double(const string &, const double)
void init(std::string repr)
void mult_isigma(Field_F &, const Field_F &, const int mu, const int nu)
Base class of fermion operator family.
std::vector< int > m_boundary
boundary conditions
int fetch_double(const string &key, double &val) const
string get_string(const string &key) const
static VerboseLevel set_verbose_level(const std::string &str)
void Ddag(Field &, const Field &)
int fetch_int_vector(const string &key, std::vector< int > &val) const