Bridge++  Ver. 1.3.x
forceSmear_APE.h
Go to the documentation of this file.
1 
14 #ifndef FORCESMEAR_APE_INCLUDED
15 #define FORCESMEAR_APE_INCLUDED
16 
17 #include "forceSmear.h"
18 #include "smear_APE.h"
19 
20 #include "bridge_complex.h"
21 #include "shiftField_lex.h"
22 
23 #include "projection.h"
24 
25 #include "bridgeIO.h"
26 using Bridge::vout;
27 
29 
38 //- parameters class
40 class Parameters_ForceSmear_APE : virtual public Parameters
41 {
42  public:
44 };
45 //- end
46 
47 class ForceSmear_APE : public ForceSmear
48 {
49  public:
50  static const std::string class_name;
51 
52  private:
53  int m_Ndim, m_Nvol;
54  std::vector<double> m_rho;
57  std::vector<Field_G> m_U;
58  std::vector<Field_G> m_iTheta;
59 
60  public:
62  : ForceSmear(), m_proj(proj)
63  {
64  init();
65  }
66 
68  : ForceSmear(), m_proj(proj.get())
69  {
70  init();
71  }
72 
73  // ~ForceSmear_APE(){
74  // };
75 
76  // Setting parameters with Parameters object.
77  void set_parameters(const Parameters& params);
78 
79  // Setting parameters with uniform smearing parameter.
80  void set_parameters(const double rho1);
81 
82  // Setting parameters with anisotropic smearing parameter.
83  void set_parameters(const std::vector<double>& rho);
84 
85  // Force computation.
86  void force_udiv(Field_G& Sigma, const Field_G& Sigma_p, const Field_G& U);
87 
88  private:
89 
90  void init();
91 
92  double rho(int mu, int nu)
93  {
94  return m_rho[mu + nu * m_Ndim];
95  }
96 
97  void force_each(Field_G&, const Field_G&, const Field_G&,
98  const Field_G&, const Field_G&, int mu, int nu);
99 
100  void staple(Field_G&, const Field_G&, const Field_G&,
101  int mu, int nu);
102 };
103 #endif
BridgeIO vout
Definition: bridgeIO.cpp:278
void force_each(Field_G &, const Field_G &, const Field_G &, const Field_G &, const Field_G &, int mu, int nu)
std::vector< Field_G > m_iTheta
ForceSmear_APE(Projection *proj)
Class for parameters.
Definition: parameters.h:38
Base class for force calculation of smeared operators.
Definition: forceSmear.h:34
void staple(Field_G &, const Field_G &, const Field_G &, int mu, int nu)
SU(N) gauge field.
Definition: field_G.h:38
void set_parameters(const Parameters &params)
void force_udiv(Field_G &Sigma, const Field_G &Sigma_p, const Field_G &U)
base class for projection operator into gauge group.
Definition: projection.h:31
ShiftField_lex m_shift
std::vector< Field_G > m_U
Methods to shift a field in the lexical site index.
ForceSmear_APE(unique_ptr< Projection > &proj)
double rho(int mu, int nu)
std::vector< double > m_rho
static const std::string class_name
Projection * m_proj
Recursive calculation for APE smeared fermion force.