Go to the documentation of this file.
16 #ifdef USE_FACTORY_AUTOREGISTER
18 bool init = Fopr_Clover::register_factory();
46 vout.
crucial(
"Error in %s: irrelevant mult mode = %s\n",
150 const std::vector<int> bc)
152 assert(bc.size() ==
m_Ndim);
168 for (
int mu = 0; mu <
m_Ndim; ++mu) {
212 if (ith == 0)
m_mode = mode;
222 }
else if (
m_mode ==
"Ddag") {
224 }
else if (
m_mode ==
"DdagD") {
226 }
else if (
m_mode ==
"DDdag") {
228 }
else if (
m_mode ==
"H") {
243 }
else if (
m_mode ==
"Ddag") {
245 }
else if (
m_mode ==
"DdagD") {
247 }
else if (
m_mode ==
"DDdag") {
249 }
else if (
m_mode ==
"H") {
283 assert(w.
nex() == 1);
332 const int mu,
const int nu)
355 gflop_csw += 2 *
m_Nc *
m_Nd / Nvol / NPE / 1.0e+9;
357 double gflop = gflop_w + gflop_csw;
360 if ((
m_mode ==
"DdagD") || (
m_mode ==
"DDdag")) gflop += gflop_csw;
int m_NinF
internal parameters
const Field_G * m_U
gauge configuration (pointer)
void set_string(const string &key, const string &value)
void H(Field &, const Field &)
void mult_isigma(Field_F &, const Field_F &, const int mu, const int nu)
void DdagD(Field &, const Field &)
void set_double(const string &key, const double value)
void mult_dn(const int mu, Field &v, const Field &w)
downward nearest neighbor hopping term.
std::vector< int > m_boundary
boundary conditions
Org::Fopr_CloverTerm Fopr_CloverTerm
Clover term operator.
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
std::string m_mode
mode of multiplication
void mult_up(const int mu, Field &v, const Field &w)
upward nearest neighbor hopping term.
void mult_isigma(Field_F &, const Field_F &, const int mu, const int nu)
void set_config(Field *U)
sets the gauge configuration.
void set_config(Field *U)
sets the gauge configuration.
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
double m_kappa
hopping parameter
double flop_count()
this returns the number of floating point operations.
std::string m_repr
gamma matrix representation
void mult_up(const int mu, Field &v, const Field &w)
upward nearest neighbor hopping term.
void mult_sigmaF(Field &, const Field &)
int fetch_int_vector(const string &key, vector< int > &value) const
void mult_gm5(Field &v, const Field &w)
multiplies gamma_5 matrix.
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
static const std::string class_name
int m_Ndim
internal parameters
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=Element_type::COMPLEX)
void set_int_vector(const string &key, const vector< int > &value)
void mult_gm5(Field &v, const Field &w)
multiplies gamma_5 matrix.
void D(Field &, const Field &)
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
static Bridge::VerboseLevel Vlevel()
static VerboseLevel set_verbose_level(const std::string &str)
double m_cSW
clover coefficient
double flop_count()
this returns the number of floating point operations.
void mult_dn(const int mu, Field &v, const Field &w)
downward nearest neighbor hopping term.
void set_config(Field *U)
sets the gauge configuration.
Fopr_Wilson * m_fopr_w
Wilson fermion kernel.
int fetch_string(const string &key, string &value) const
Wilson-type fermion field.
int fetch_double(const string &key, double &value) const
void D(Field &, const Field &)
Bridge::VerboseLevel m_vl
verbose level
void mult_dag(Field &v, const Field &f)
hermitian conjugate of mult.
void crucial(const char *format,...)
void Ddag(Field &, const Field &)
bool m_is_initial_step
to avoid redundant setup
void init(const std::string repr)
Container of Field-type object.
static int get_thread_id()
returns thread id.
void general(const char *format,...)
void mult(Field &v, const Field &f)
multiplies fermion operator to a given field.
Fopr_CloverTerm * m_fopr_csw
Clover term operator.
void DDdag(Field &, const Field &)
static void assert_single_thread(const std::string &class_name)
assert currently running on single thread.
double flop_count()
this returns the number of floating point operations.
static std::string get_verbose_level(const VerboseLevel vl)
Org::Fopr_Wilson Fopr_Wilson
Wilson fermion operator.