14 #ifndef FOPR_WILSON_EO_IMPL_IMP_INCLUDED
15 #define FOPR_WILSON_EO_IMPL_IMP_INCLUDED
87 void set_parameters(
const double kappa,
const std::vector<int> bc);
94 void set_mode(
const std::string mode);
110 { (this->*
m_mult)(v, f); }
147 void init(
const std::string);
220 void scal_thread(
const int,
double *,
const double);
230 static Fopr *create_object()
235 static Fopr *create_object_with_repr(
const std::string& repr)
241 static bool register_factory()
243 bool init1 = Fopr::Factory_noarg::Register(
"Wilson_eo/Imp", create_object);
244 bool init2 = Fopr::Factory_string::Register(
"Wilson_eo/Imp", create_object_with_repr);
246 return init1 && init2;
void mult_zp2_thread(const int, double *, const double *, const int)
Fopr_Wilson_eo(const std::string repr)
void set_config(unique_ptr< Field_G > &U)
void mult_xm(Field &, const Field &, const int ieo)
void postPropD(Field &, const Field &, const Field &)
void mult_tm_dirac(Field &, const Field &, const int ieo)
void mult_tp1_dirac_thread(const int, double *, const double *, const int)
void mult_zpb_thread(const int, double *, const double *, const int)
void(Fopr_Wilson_eo::* m_mult_tp)(Field &, const Field &, const int ieo)
void mult_ymb_thread(const int, double *, const double *, const int)
void mult_ym(Field &, const Field &, const int ieo)
void mult_xp(Field &, const Field &, const int ieo)
void mult_yp(Field &, const Field &, const int ieo)
void gm5_chiral_thread(const int, double *, const double *)
void mult_zm2_thread(const int, double *, const double *, const int)
void clear_thread(const int, double *)
void DDdag(Field &v, const Field &f)
void gm5p(const int mu, Field &, const Field &v)
gamma_5 (1 - gamma_mu) v(x + mu) used in force calculation.
void(Fopr_Wilson_eo::* m_mult)(Field &, const Field &)
void gm5_dirac(Field &, const Field &)
Container of Field-type object.
void mult_xp2_thread(const int, double *, const double *, const int)
int field_nex()
returns the external d.o.f. for which the fermion operator is defined.
void scal_impl(Field &, const double)
void DdagD(Field &v, const Field &f)
void Mdageo(Field &, const Field &, const int ieo)
void(Fopr_Wilson_eo::* m_D)(Field &, const Field &)
std::vector< double > m_boundary_each_node
b.c. for each node.
void mult(Field &v, const Field &f)
multiplies fermion operator to a given field (2nd argument)
void mult_tmb_chiral_thread(const int, double *, const double *, const int)
void mult_zp1_thread(const int, double *, const double *, const int)
void mult_zm(Field &, const Field &, const int ieo)
void mult_tp2_dirac_thread(const int, double *, const double *, const int)
void set_config(Field *U)
setting pointer to the gauge configuration.
void(Fopr_Wilson_eo::* m_postProp)(Field &, const Field &, const Field &)
void MeoMoe(Field &, const Field &)
void gm5_self_chiral(Field &)
std::vector< int > m_yzt_eo
void mult_xp1_thread(const int, double *, const double *, const int)
void mult_tp_dirac(Field &, const Field &, const int ieo)
void mult_ym1_thread(const int, double *, const double *, const int)
void Ddag(Field &v, const Field &f)
void Meo(Field &, const Field &, const int ieo)
void(Fopr_Wilson_eo::* m_gm5)(Field &, const Field &)
void gm5_dirac_thread(const int, double *, const double *)
void(Fopr_Wilson_eo::* m_gm5_self)(Field &)
void mult_xm1_thread(const int, double *, const double *, const int)
void mult_tpb_dirac_thread(const int, double *, const double *, const int)
void(Fopr_Wilson_eo::* m_mult_dag)(Field &, const Field &)
void mult_tm2_dirac_thread(const int, double *, const double *, const int)
void mult_tp2_chiral_thread(const int, double *, const double *, const int)
void mult_yp1_thread(const int, double *, const double *, const int)
void init(const std::string)
void mult_tm_chiral(Field &, const Field &, const int ieo)
void mult_zmb_thread(const int, double *, const double *, const int)
double flop_count()
this returns the number of floating point operations of Meo.
void mult_xm2_thread(const int, double *, const double *, const int)
double * vcp1_xp
arrays for data transfer.
int field_nin()
returns the on-site d.o.f. for which the fermion operator is defined.
void gm5_chiral(Field &, const Field &)
Base class of fermion operator family.
void preProp(Field &Be, Field &bo, const Field &b)
Field_G * m_U
dummy: pointing m_Ueo.
void mult_tm1_dirac_thread(const int, double *, const double *, const int)
void mult_tpb_chiral_thread(const int, double *, const double *, const int)
void mult_tp_chiral(Field &, const Field &, const int ieo)
std::string m_repr
Dirac matrix representation.
void prePropDag(Field &, Field &, const Field &)
void mult_yp2_thread(const int, double *, const double *, const int)
void mult_tp1_chiral_thread(const int, double *, const double *, const int)
int field_nvol()
returns the volume for which the fermion operator is defined.
void(Fopr_Wilson_eo::* m_preProp)(Field &, Field &, const Field &)
void Meo_gm5(Field &, const Field &, const int ieo)
void D(Field &v, const Field &f)
std::vector< mult_arg > m_arg
std::vector< int > m_boundary
boundary condition.
void mult_tm2_chiral_thread(const int, double *, const double *, const int)
void mult_tm1_chiral_thread(const int, double *, const double *, const int)
std::string get_mode() const
only for Fopr_Overlap
void mult_gm5(Field &, const Field &)
gamma_5 multiplication. [31 Mar 2017 H.Matsufuru]
void prePropD(Field &, Field &, const Field &)
void mult_zp(Field &, const Field &, const int ieo)
void mult_xmb_thread(const int, double *, const double *, const int)
void H(Field &v, const Field &f)
double m_kappa
hopping parameter.
void(Fopr_Wilson_eo::* m_mult_tm)(Field &, const Field &, const int ieo)
std::string m_mode
mult mode.
Base class of fermion operator family.
void gm5_self_dirac(Field &)
void mult_xpb_thread(const int, double *, const double *, const int)
void postPropDag(Field &, const Field &, const Field &)
void scal_thread(const int, double *, const double)
void mult_ym2_thread(const int, double *, const double *, const int)
void postProp(Field &x, const Field &xe, const Field &bo)
void set_parameters(const Parameters ¶ms)
static const std::string class_name
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
void mult_tmb_dirac_thread(const int, double *, const double *, const int)
void mult_ypb_thread(const int, double *, const double *, const int)
void mult_zm1_thread(const int, double *, const double *, const int)
void mult_dag(Field &v, const Field &f)
hermitian conjugate of mult(Field&, const Field&).