14 #ifndef FOPR_CLOVER_INCLUDED
15 #define FOPR_CLOVER_INCLUDED
82 void set_parameters(
const double kappa,
const double cSW,
const std::vector<int> bc);
112 }
else if (
m_mode ==
"Ddag") {
114 }
else if (
m_mode ==
"DdagD") {
116 }
else if (
m_mode ==
"DDdag") {
118 }
else if (
m_mode ==
"H") {
130 }
else if (
m_mode ==
"DdagD") {
132 }
else if (
m_mode ==
"Ddag") {
134 }
else if (
m_mode ==
"H") {
164 const int mu,
const int nu);
174 void init(
const std::string repr);
179 static Fopr *create_object()
184 static Fopr *create_object_with_arg(
const std::string& repr)
190 static bool register_factory()
192 bool init1 = Fopr::Factory_noarg::Register(
"Clover", create_object);
193 bool init2 = Fopr::Factory_string::Register(
"Clover", create_object_with_arg);
195 return init1 && init2;
void DDdag(Field &, const Field &)
void set_config(Field *U)
setting pointer to the gauge configuration.
void set_config(unique_ptr< Field_G > &U)
const Field_G * m_U
gauge configuration (pointer)
void mult_up(const int mu, Field &v, const Field &w)
nearest neighbor hopping term: temporary entry [H.Matsufuru]
void set_config(Field *U)
setting pointer to the gauge configuration.
Container of Field-type object.
void mult(Field &v, const Field &f)
multiplies fermion operator to a given field (2nd argument)
void mult_gm5(Field &v, const Field &f)
gamma_5 multiplication. [31 Mar 2017 H.Matsufuru]
void DdagD(Field &, const Field &)
Fopr_Clover(const std::string repr)
void mult_dn(const int mu, Field &v, const Field &w)
std::vector< int > m_boundary
boundary conditions
void H(Field &, const Field &)
std::string m_mode
mode of multiplication
Wilson-type fermion field.
std::string m_repr
gamma matrix representation
void mult_isigma(Field_F &, const Field_F &, const int mu, const int nu)
void mult_dn(const int mu, Field &w, const Field &f)
void set_config(Field *U)
setting pointer to the gauge configuration.
double m_cSW
clover coefficient
double m_kappa
hopping parameter
Bridge::VerboseLevel m_vl
Fopr_Wilson * m_fopr_w
Wilson fermion kernel.
static const std::string class_name
int field_nex()
returns the external d.o.f. for which the fermion operator is defined.
void mult_gm5(Field &v, const Field &w)
gamma_5 multiplication. [31 Mar 2017 H.Matsufuru]
void D(Field &, const Field &)
int field_nin()
returns the on-site d.o.f. for which the fermion operator is defined.
void mult_up(const int mu, Field &w, const Field &f)
nearest neighbor hopping term: temporary entry [H.Matsufuru]
void crucial(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...
Fopr_CloverTerm * m_fopr_csw
Clover term operator.
void mult_dag(Field &v, const Field &f)
hermitian conjugate of mult(Field&, const Field&).
int m_NinF
internal parameters
void Ddag(Field &, const Field &)
int field_nvol()
returns the volume for which the fermion operator is defined.
Base class of fermion operator family.
double flop_count()
this returns the number of floating point operations.
std::string get_mode() const
only for Fopr_Overlap
void init(const std::string repr)
void set_parameters(const Parameters ¶ms)