Go to the documentation of this file.
14 #ifndef AFOPR_INCLUDED
15 #define AFOPR_INCLUDED
47 template<
typename AFIELD>
67 vout.
crucial(
"AFopr: set_parameters not implemented.\n");
73 vout.
crucial(
"AFopr: get_parameters not implemented.\n");
104 vout.
crucial(
"AFopr: mult_dag not implemented.\n");
111 vout.
crucial(
"AFopr: mult with mode not implemented.\n");
118 vout.
crucial(
"AFopr: mult with mode not implemented.\n");
125 vout.
crucial(
"AFopr: mult_gm5 not implemented.\n");
162 vout.
crucial(
"AFopr: flop_count is not implemented.\n");
169 vout.
crucial(
"AFopr: flop_count with mode is not implemented.\n");
179 vout.
crucial(
"AFopr: convert is not implemented.\n");
186 vout.
crucial(
"AFopr: reverse is not implemented.\n");
192 typedef AFopr *(*ProductCreator_noarg)();
193 typedef AFopr *(*ProductCreator_fopr)(
AFopr *fopr);
197 typedef AFopr *(*ProductCreator_string)(
const std::string& arg);
204 Factory_fopr_director;
206 Factory_fopr_director_params;
214 ProductCreator_noarg p = Factory_noarg::Find(subtype);
215 return p ? (*p)() : 0;
220 ProductCreator_fopr p = Factory_fopr::Find(subtype);
221 return p ? (*p)(fopr) : 0;
227 ProductCreator_fopr_director p = Factory_fopr_director::Find(subtype);
228 return p ? (*p)(fopr, director) : 0;
234 ProductCreator_fopr_director_params p =
235 Factory_fopr_director_params::Find(subtype);
236 return p ? (*p)(fopr, director, params) : 0;
241 ProductCreator_string p = Factory_string::Find(subtype);
242 return p ? (*p)(arg) : 0;
247 ProductCreator_params p = Factory_params::Find(subtype);
248 return p ? (*p)(params) : 0;
254 ProductCreator_fopr_params p = Factory_fopr_params::Find(subtype);
255 return p ? (*p)(fopr, params) : 0;
258 #ifdef USE_FACTORY_AUTOREGISTER
260 static bool init_factory();
262 #endif // USE_FACTORY
virtual void normalize_fprop(AFIELD &)
normalize propagator if necessary (default: do nothing)
AFopr & operator=(const AFopr &)
virtual void mult(AFIELD &, const AFIELD &)
multiplies fermion operator to a given field.
virtual void reverse(Field &, const AFIELD &)
converts an alternative field to a Field object.
virtual int field_nex()=0
returns the external degree of freedom of the fermion field.
virtual void convert(AFIELD &, const Field &)
converts a Field object into other format if necessary.
virtual void mult_dag(AFIELD &, const AFIELD &, const std::string mode)
executes mult_dag with specified mode (unchanging internal mode).
virtual void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
virtual void mult_gm5(AFIELD &, const AFIELD &)
multiplies gamma_5 matrix.
virtual void normalize_fopr(AFIELD &)
normalize propagator if necessary (default: do nothing)
virtual void set_config(Field *)=0
sets the gauge configuration.
virtual std::string get_mode() const
returns the current mult mode.
virtual void mult_dag(AFIELD &, const AFIELD &)
hermitian conjugate of mult.
static const std::string class_name
virtual bool needs_convert()
returns true if additional field conversion is needed.
virtual void mult(AFIELD &, const AFIELD &, const std::string mode)
executes mult with specified mode (unchanging internal mode).
virtual int field_nvol()=0
returns the volume of the fermion field.
virtual double flop_count()
returns the number of floating point operations.
virtual void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
virtual void mult_dn(int mu, AFIELD &, const AFIELD &)
downward nearest neighbor hopping term.
Manager of commonly used data object in HMC.
void crucial(const char *format,...)
Container of Field-type object.
virtual int field_nin()=0
returns the on-site degree of freedom of the fermion field.
virtual double flop_count(const std::string mode)
returns the flops per site for specified mode.
void general(const char *format,...)
virtual void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
std::string IdentifierType
virtual void mult_up(int mu, AFIELD &, const AFIELD &)
upward nearest neighbor hopping term.