Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
smear_HYP_SF.h
Go to the documentation of this file.
1 
13 #ifndef SMEAR_HYP_SF_INCLUDED
14 #define SMEAR_HYP_SF_INCLUDED
15 
16 #include "smear.h"
17 #include "field_G_SF.h"
18 #include "shiftField_lex.h"
19 //#include "staples_SF.h"
20 
21 #include "bridgeIO.h"
22 using Bridge::vout;
23 
25 
32 //- parameters class
33 class Parameters_Smear_HYP_SF : virtual public Parameters
34 {
35  public:
37 };
38 //- end
39 
40 class Smear_HYP_SF : public Smear
41 {
42  public:
43  static const std::string class_name;
44 
45  private:
46  int m_Ndim, m_Nvol;
47  double m_alpha1, m_alpha2, m_alpha3; // HYP smearing parameters
49  std::valarray<Field_G> m_U;
50  std::valarray<Field_G> m_v1;
51  std::valarray<Field_G> m_v2;
53 
55 
56  public:
57 
59  : Smear(), m_proj(proj)
60  {
61  init();
62  }
63 
65 
66  void init();
67 
68  void set_parameters(const Parameters& params);
69  void set_parameters(double alpha1, double alpha2, double alpha3, double *phi, double *phipr);
70 
71  void smear(Field_G& Usmear, const Field_G& U);
72 
73  private:
74  void staple(Field_G&, const Field_G&, const Field_G&,
75  int mu, int nu);
76 
77  void step1();
78  void step2();
79  void step3(Field_G&);
80 
81  int index_v1(int mu, int nu, int rho)
82  {
83  int sig = 6 - mu - nu - rho;
84 
85  if (sig > mu) --sig;
86  return mu + m_Ndim * sig;
87  }
88 
89  int index_v2(int mu, int nu)
90  {
91  if (nu > mu) --nu;
92  return mu + m_Ndim * nu;
93  }
94 
95  int size_v1()
96  {
97  return m_Ndim * (m_Ndim - 1);
98  }
99 
100  int size_v2()
101  {
102  return m_Ndim * (m_Ndim - 1);
103  }
104 };
105 #endif
BridgeIO vout
Definition: bridgeIO.cpp:207
void staple(Field_G &, const Field_G &, const Field_G &, int mu, int nu)
int index_v2(int mu, int nu)
Definition: smear_HYP_SF.h:89
int index_v1(int mu, int nu, int rho)
Definition: smear_HYP_SF.h:81
double m_alpha2
Definition: smear_HYP_SF.h:47
void smear(Field_G &Usmear, const Field_G &U)
Smear_HYP_SF(Projection *proj)
Definition: smear_HYP_SF.h:58
Class for parameters.
Definition: parameters.h:40
double m_alpha1
Definition: smear_HYP_SF.h:47
Field_G_SF set_wk
Definition: smear_HYP_SF.h:54
void set_parameters(const Parameters &params)
double m_alpha3
Definition: smear_HYP_SF.h:47
SU(N) gauge field.
Definition: field_G.h:36
void step3(Field_G &)
std::valarray< Field_G > m_v1
Definition: smear_HYP_SF.h:50
ShiftField_lex m_shift
Definition: smear_HYP_SF.h:52
base class for projection operator into gauge group.
Definition: projection.h:33
static const std::string class_name
Definition: smear_HYP_SF.h:43
std::valarray< Field_G > m_v2
Definition: smear_HYP_SF.h:51
HYP smearing of link variables with SF BC.
Definition: smear_HYP_SF.h:33
std::valarray< Field_G > m_U
Definition: smear_HYP_SF.h:49
base class for smearing of link variables.
Definition: smear.h:36
Methods to shift a field in the lexical site index.
Projection * m_proj
Definition: smear_HYP_SF.h:48