Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
36 //- parameters class
38 class Parameters_ForceSmear_APE : virtual public Parameters
39 {
40  public:
42 };
43 //- end
44 
45 class ForceSmear_APE : public ForceSmear
46 {
47  private:
48  int m_Ndim, m_Nvol;
49  std::valarray<double> m_rho;
52  std::valarray<Field_G> m_U;
53  std::valarray<Field_G> m_iTheta;
54 
55  public:
56 
58  : ForceSmear(), m_proj(proj)
59  {
60  init();
61  }
62 
63  // ~ForceSmear_APE(){
64  // };
65 
66  // Setting parameters with Parameters object.
67  void set_parameters(const Parameters& params);
68 
69  // Setting parameters with Parameters for Smear_APE class.
70  // void set_parameters (const Parameters_Smear_APE& params);
71 
72  // Setting parameters with uniform smearing parameter.
73  void set_parameters(const double rho1);
74 
75  // Setting parameters with anisotropic smearing parameter.
76  void set_parameters(const std::valarray<double>& rho);
77 
78  // Force computation.
79  Field force_udiv(const Field_G& Sigma, const Field_G& U);
80 
81  private:
82 
83  void init();
84 
85  double rho(int mu, int nu)
86  {
87  return m_rho[mu + nu * m_Ndim];
88  }
89 
90  void force_each(Field_G&, const Field_G&, const Field_G&,
91  const Field_G&, const Field_G&, int mu, int nu);
92 
93  void staple(Field_G&, const Field_G&, const Field_G&,
94  int mu, int nu);
95 };
96 #endif