Bridge++  Ver. 2.0.2
afopr_eo.h
Go to the documentation of this file.
1 
14 #ifndef AFOPR_EO_INCLUDED
15 #define AFOPR_EO_INCLUDED
16 
17 #include "Fopr/afopr.h"
18 
20 
34 template<typename AFIELD>
35 class AFopr_eo : public AFopr<AFIELD>
36 {
37  protected:
38  static const std::string class_name;
39 
40  public:
41  virtual ~AFopr_eo() {}
42 
43  // methods for even odd fermion operator
44  virtual void preProp(AFIELD&, AFIELD&, const AFIELD&) = 0;
45  virtual void postProp(AFIELD&, const AFIELD&, const AFIELD&) = 0;
46 
48  virtual void set_config(Field *) = 0;
49 
51  // and set the resultant field to the 1st argument.
52  virtual void mult(AFIELD&, const AFIELD&) {}
53 
55  virtual void mult_dag(AFIELD&, const AFIELD&) {}
56 
57  virtual void mult(AFIELD&, const AFIELD&, const std::string) {}
58 
59  virtual void mult_dag(AFIELD&, const AFIELD&, const std::string) {}
60 
63  virtual void set_mode(const std::string mode)
64  {
65  vout.general("AFopr_eo: set_mode not implemented.\n");
66  }
67 
68  std::string get_mode() const
69  {
70  vout.general("AFopr_eo: get_mode not implemented.\n");
71  return std::string();
72  }
73 
75  virtual int field_nvol() = 0;
76 
78  virtual int field_nin() = 0;
79 
81  virtual int field_nex() = 0;
82 };
83 #endif
AFopr
Definition: afopr.h:48
AFopr_eo
Base class of fermion operator family.
Definition: afopr_eo.h:35
AFopr_eo::mult_dag
virtual void mult_dag(AFIELD &, const AFIELD &, const std::string)
executes mult_dag with specified mode (unchanging internal mode).
Definition: afopr_eo.h:59
AFopr_eo::class_name
static const std::string class_name
Definition: afopr_eo.h:38
AFopr_eo::mult_dag
virtual void mult_dag(AFIELD &, const AFIELD &)
hermitian conjugate of mult(Field&, const Field&).
Definition: afopr_eo.h:55
AFopr_eo::set_mode
virtual void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Definition: afopr_eo.h:63
AFopr_eo::preProp
virtual void preProp(AFIELD &, AFIELD &, const AFIELD &)=0
AFopr_eo::field_nin
virtual int field_nin()=0
returns the on-site d.o.f. for which the fermion operator is defined.
AFopr_eo::set_config
virtual void set_config(Field *)=0
setting pointer to the gauge configuration.
AFopr_eo::get_mode
std::string get_mode() const
returns the current mult mode.
Definition: afopr_eo.h:68
AFopr_eo::field_nvol
virtual int field_nvol()=0
returns the volume for which the fermion operator is defined.
AFopr_eo::postProp
virtual void postProp(AFIELD &, const AFIELD &, const AFIELD &)=0
AFopr_eo::~AFopr_eo
virtual ~AFopr_eo()
Definition: afopr_eo.h:41
Field
Container of Field-type object.
Definition: field.h:46
afopr.h
AFopr_eo::mult
virtual void mult(AFIELD &, const AFIELD &)
multiplies fermion operator to a given field (2nd argument)
Definition: afopr_eo.h:52
AFopr_eo::field_nex
virtual int field_nex()=0
returns the external d.o.f. for which the fermion operator is defined.
AFopr_eo::mult
virtual void mult(AFIELD &, const AFIELD &, const std::string)
executes mult with specified mode (unchanging internal mode).
Definition: afopr_eo.h:57
Bridge::BridgeIO::general
void general(const char *format,...)
Definition: bridgeIO.cpp:200
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512