Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fopr_Smeared_eo.h
Go to the documentation of this file.
1 
15 #ifndef FOPR_SMEARED_EO_INCLUDED
16 #define FOPR_SMEARED_EO_INCLUDED
17 
18 #include "fopr_eo.h"
19 #include "Smear/director_Smear.h"
20 
21 #include "IO/bridgeIO.h"
22 using Bridge::vout;
23 
25 
42 class Fopr_Smeared_eo : public Fopr_eo
43 {
44  public:
45  static const std::string class_name;
46 
47  private:
50 
51  public:
53  Fopr_Smeared_eo(Fopr_eo *fopr_eo, Director_Smear *dr_smear) : Fopr_eo()
54  {
55  m_fopr_eo = fopr_eo;
56  m_dr_smear = dr_smear;
57  }
58 
60  {
61  m_fopr_eo = fopr_eo.get();
62  m_dr_smear = dr_smear.get();
63  }
64 
65  void set_parameters(const Parameters&);
66 
67  void preProp(Field& Be, Field& bo, const Field& b)
68  {
69  m_fopr_eo->preProp(Be, bo, b);
70  }
71 
72  void postProp(Field& x, const Field& xe, const Field& bo)
73  {
74  m_fopr_eo->postProp(x, xe, bo);
75  }
76 
78  void set_config(Field *U);
79 
81  {
82  set_config(U.get());
83  }
84 
86  void mult(Field& v, const Field& f)
87  {
88  m_fopr_eo->mult(v, f);
89  }
90 
92  void mult_dag(Field& v, const Field& f)
93  {
94  m_fopr_eo->mult_dag(v, f);
95  }
96 
98  void set_mode(std::string mode)
99  {
100  m_fopr_eo->set_mode(mode);
101  }
102 
103  std::string get_mode() const
104  {
105  return m_fopr_eo->get_mode();
106  }
107 
108  void mult_up(int mu, Field& v, const Field& w)
109  {
110  m_fopr_eo->mult_up(mu, v, w);
111  }
112 
113  void mult_dn(int mu, Field& v, const Field& w)
114  {
115  m_fopr_eo->mult_dn(mu, v, w);
116  }
117 
118  int field_nvol() { return m_fopr_eo->field_nvol(); }
119  int field_nin() { return m_fopr_eo->field_nin(); }
120  int field_nex() { return m_fopr_eo->field_nex(); }
121 };
122 #endif
BridgeIO vout
Definition: bridgeIO.cpp:495
void mult(Field &v, const Field &f)
multiply smeared fermion operator
virtual int field_nvol()=0
returns the volume for which the fermion operator is defined.
int field_nex()
returns the external d.o.f. for which the fermion operator is defined.
void set_parameters(const Parameters &)
virtual void postProp(Field &, const Field &, const Field &)=0
Container of Field-type object.
Definition: field.h:39
std::string get_mode() const
only for Fopr_Overlap
Definition: fopr_eo.h:61
int field_nin()
returns the on-site d.o.f. for which the fermion operator is defined.
Director_Smear * m_dr_smear
void mult_dn(int mu, Field &v, const Field &w)
Class for parameters.
Definition: parameters.h:46
smeared fermion operator with even-odd preconditioning.
Fopr_Smeared_eo(unique_ptr< Fopr_eo > &fopr_eo, unique_ptr< Director_Smear > &dr_smear)
Fopr_eo * m_fopr_eo
virtual void mult_dn(int mu, Field &, const Field &)
Definition: fopr.h:92
void set_mode(std::string mode)
set the mode of fermion operator
pointer get() const
Base class of fermion operator family.
Definition: fopr_eo.h:34
void postProp(Field &x, const Field &xe, const Field &bo)
void set_config(Field *U)
set pointer to original thin link variable
virtual void mult_up(int mu, Field &, const Field &)
nearest neighbor hopping term: temporary entry [H.Matsufuru]
Definition: fopr.h:91
void mult_up(int mu, Field &v, const Field &w)
nearest neighbor hopping term: temporary entry [H.Matsufuru]
Fopr_Smeared_eo(Fopr_eo *fopr_eo, Director_Smear *dr_smear)
constructor requires Fopr and Director_Smear objects
virtual int field_nex()=0
returns the external d.o.f. for which the fermion operator is defined.
Manager of smeared configurations.
void mult_dag(Field &v, const Field &f)
multiply smeared fermion operator
void preProp(Field &Be, Field &bo, const Field &b)
virtual void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Definition: fopr_eo.h:56
int field_nvol()
returns the volume for which the fermion operator is defined.
virtual void preProp(Field &, Field &, const Field &)=0
virtual int field_nin()=0
returns the on-site d.o.f. for which the fermion operator is defined.
virtual void mult(Field &, const Field &)
multiplies fermion operator to a given field (2nd argument)
Definition: fopr_eo.h:49
virtual void mult_dag(Field &, const Field &)
hermitian conjugate of mult(Field&, const Field&).
Definition: fopr_eo.h:52
std::string get_mode() const
only for Fopr_Overlap
void set_config(unique_ptr< Field_G > &U)
static const std::string class_name