Bridge++  Ver. 1.2.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  public:
48  static const std::string class_name;
49 
50  private:
51  int m_Ndim, m_Nvol;
52  std::valarray<double> m_rho;
55  std::valarray<Field_G> m_U;
56  std::valarray<Field_G> m_iTheta;
57 
58  public:
59 
61  : ForceSmear(), m_proj(proj)
62  {
63  init();
64  }
65 
66  // ~ForceSmear_APE(){
67  // };
68 
69  // Setting parameters with Parameters object.
70  void set_parameters(const Parameters& params);
71 
72  // Setting parameters with Parameters for Smear_APE class.
73  // void set_parameters (const Parameters_Smear_APE& params);
74 
75  // Setting parameters with uniform smearing parameter.
76  void set_parameters(const double rho1);
77 
78  // Setting parameters with anisotropic smearing parameter.
79  void set_parameters(const std::valarray<double>& rho);
80 
81  // Force computation.
82  void force_udiv(Field_G& Sigma, const Field_G& Sigma_p, const Field_G& U);
83 
84  // old interface
85  Field force_udiv(const Field_G& Sigma, const Field_G& U);
86 
87  private:
88 
89  void init();
90 
91  double rho(int mu, int nu)
92  {
93  return m_rho[mu + nu * m_Ndim];
94  }
95 
96  void force_each(Field_G&, const Field_G&, const Field_G&,
97  const Field_G&, const Field_G&, int mu, int nu);
98 
99  void staple(Field_G&, const Field_G&, const Field_G&,
100  int mu, int nu);
101 };
102 #endif
BridgeIO vout
Definition: bridgeIO.cpp:207
std::valarray< Field_G > m_U
void force_each(Field_G &, const Field_G &, const Field_G &, const Field_G &, const Field_G &, int mu, int nu)
std::valarray< double > m_rho
Container of Field-type object.
Definition: field.h:37
ForceSmear_APE(Projection *proj)
Class for parameters.
Definition: parameters.h:40
Base class for force calculation of smeared operators.
Definition: forceSmear.h:37
void staple(Field_G &, const Field_G &, const Field_G &, int mu, int nu)
SU(N) gauge field.
Definition: field_G.h:36
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:33
ShiftField_lex m_shift
std::valarray< Field_G > m_iTheta
Methods to shift a field in the lexical site index.
double rho(int mu, int nu)
static const std::string class_name
Projection * m_proj
Recursive calculation for APE smeared fermion force.