Bridge++  Version 1.4.4
 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/smear_APE.h"
19 
20 #include "bridge_complex.h"
21 #include "Field/shiftField_lex.h"
22 
23 #include "Smear/projection.h"
24 
25 #include "IO/bridgeIO.h"
26 using Bridge::vout;
27 
29 
39 class ForceSmear_APE : public ForceSmear
40 {
41  public:
42  static const std::string class_name;
43 
44  private:
45  int m_Ndim, m_Nvol;
46  std::vector<double> m_rho;
49  std::vector<Field_G> m_U;
50  std::vector<Field_G> m_iTheta;
51 
52  public:
54  : ForceSmear(), m_proj(proj)
55  {
56  init();
57  }
58 
60  : ForceSmear(), m_proj(proj.get())
61  {
62  init();
63  }
64 
65  // ~ForceSmear_APE(){
66  // };
67 
68  // Setting parameters with Parameters object.
69  void set_parameters(const Parameters& params);
70 
71  // Setting parameters with uniform smearing parameter.
72  void set_parameters(const double rho1);
73 
74  // Setting parameters with anisotropic smearing parameter.
75  void set_parameters(const std::vector<double>& rho);
76 
77  // Force computation.
78  void force_udiv(Field_G& Sigma, const Field_G& Sigma_p, const Field_G& U);
79 
80  private:
81 
82  void init();
83 
84  double rho(int mu, int nu)
85  {
86  return m_rho[mu + nu * m_Ndim];
87  }
88 
89  void force_each(Field_G&, const Field_G&, const Field_G&,
90  const Field_G&, const Field_G&, int mu, int nu);
91 
92  void staple(Field_G&, const Field_G&, const Field_G&,
93  int mu, int nu);
94 };
95 #endif
BridgeIO vout
Definition: bridgeIO.cpp:495
void force_each(Field_G &, const Field_G &, const Field_G &, const Field_G &, const Field_G &, int mu, int nu)
Recursive calculation for APE smeared fermion force.
std::vector< Field_G > m_iTheta
ForceSmear_APE(Projection *proj)
Class for parameters.
Definition: parameters.h:46
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