Bridge++  Ver.2.1.3
smear_HYP_SF.h
Go to the documentation of this file.
1 
10 #ifndef SMEAR_HYP_SF_INCLUDED
11 #define SMEAR_HYP_SF_INCLUDED
12 
13 #include "lib/Smear/smear.h"
14 #include "lib/Field/field_SF.h"
16 #include "lib/IO/bridgeIO.h"
17 using Bridge::vout;
18 
20 
31 class Smear_HYP_SF : public Smear
32 {
33  public:
34  static const std::string class_name;
35 
36  private:
38 
39  int m_Ndim, m_Nvol;
40  double m_alpha1;
41  double m_alpha2;
42  double m_alpha3;
43  std::vector<double> m_phi;
44  std::vector<double> m_phipr;
45 
47  std::vector<Field_G> m_U;
48  std::vector<Field_G> m_v1;
49  std::vector<Field_G> m_v2;
50 
52 
55 
62 
63  public:
64 
65  Smear_HYP_SF(Projection *proj, const Parameters& params)
66  : m_proj(proj),
68  { init(params); }
69 
71 
72  void set_parameters(const Parameters& params);
73 
74  void set_parameters(const double alpha1,
75  const double alpha2,
76  const double alpha3,
77  const std::vector<double>& phi,
78  const std::vector<double>& phipr);
79 
80  void get_parameters(Parameters& params) const;
81 
82  void smear(Field_G& Usmear, const Field_G& U);
83 
84  private:
85 
86  void init(const Parameters& params);
87 
88  void tidyup();
89 
90  void staple(Field_G&, const Field_G&, const Field_G&,
91  const int mu, const int nu);
92 
93  void step1();
94  void step2();
95  void step3(Field_G&);
96 
97  int index_v1(const int mu, const int nu, const int rho)
98  {
99  int sig = 6 - mu - nu - rho;
100  if (sig > mu) --sig;
101  return mu + m_Ndim * sig;
102  }
103 
104  int index_v2(const int mu, int nu)
105  {
106  if (nu > mu) --nu;
107  return mu + m_Ndim * nu;
108  }
109 
110  int size_v1(){ return m_Ndim * (m_Ndim - 1); }
111 
112  int size_v2(){ return m_Ndim * (m_Ndim - 1); }
113 
114 
115 #ifdef USE_FACTORY
116  private:
117 
118  static Smear *create_object_with_params(Projection *proj,
119  const Parameters& params)
120  { return new Smear_HYP_SF(proj, params); }
121 
122  public:
123  static bool register_factory()
124  {
125  bool init = true;
126  init &= Smear::Factory_params::Register("HYP_SF",
127  create_object_with_params);
128  return init;
129  }
130 #endif
131 
132 };
133 #endif
Smear_HYP_SF::m_proj
Projection * m_proj
Definition: smear_HYP_SF.h:46
bridgeIO.h
Smear_HYP_SF::m_alpha2
double m_alpha2
HYP smearing parameters.
Definition: smear_HYP_SF.h:41
Smear_HYP_SF::m_vt2
Field_G * m_vt2
Definition: smear_HYP_SF.h:61
CommonParameters
Common parameter class: provides parameters as singleton.
Definition: commonParameters.h:42
Smear_HYP_SF::m_alpha3
double m_alpha3
HYP smearing parameters.
Definition: smear_HYP_SF.h:42
Parameters
Class for parameters.
Definition: parameters.h:46
Smear_HYP_SF::m_c3
Field_G * m_c3
Definition: smear_HYP_SF.h:58
Smear_HYP_SF::step1
void step1()
Definition: smear_HYP_SF.cpp:188
shiftField_lex.h
Smear_HYP_SF::m_ut
Field_G * m_ut
Definition: smear_HYP_SF.h:59
Smear_HYP_SF::staple
void staple(Field_G &, const Field_G &, const Field_G &, const int mu, const int nu)
Definition: smear_HYP_SF.cpp:284
Smear_HYP_SF::smear
void smear(Field_G &Usmear, const Field_G &U)
Definition: smear_HYP_SF.cpp:159
Smear_HYP_SF::m_Ndim
int m_Ndim
Definition: smear_HYP_SF.h:39
Smear_HYP_SF::init
void init(const Parameters &params)
Definition: smear_HYP_SF.cpp:22
Smear_HYP_SF::m_U
std::vector< Field_G > m_U
Definition: smear_HYP_SF.h:47
Smear_HYP_SF::m_phipr
std::vector< double > m_phipr
raw parameter values
Definition: smear_HYP_SF.h:44
Smear_HYP_SF::m_alpha1
double m_alpha1
HYP smearing parameters.
Definition: smear_HYP_SF.h:40
Smear_HYP_SF::m_wk
Mat_SU_N m_wk
SF boundary condition at t=0.
Definition: smear_HYP_SF.h:53
Smear_HYP_SF
HYP smearing of link variables with SF BC.
Definition: smear_HYP_SF.h:31
Smear_HYP_SF::m_v2
std::vector< Field_G > m_v2
Definition: smear_HYP_SF.h:49
Smear_HYP_SF::step3
void step3(Field_G &)
Definition: smear_HYP_SF.cpp:252
SU_N::Mat_SU_N
Definition: mat_SU_N.h:36
Smear_HYP_SF::m_vl
Bridge::VerboseLevel m_vl
Definition: smear_HYP_SF.h:37
ASmear
Base template class for smearing of link variables.
Definition: asmear.h:31
field_SF.h
Smear_HYP_SF::get_parameters
void get_parameters(Parameters &params) const
Definition: smear_HYP_SF.cpp:146
Smear_HYP_SF::tidyup
void tidyup()
Definition: smear_HYP_SF.cpp:61
Smear_HYP_SF::size_v1
int size_v1()
Definition: smear_HYP_SF.h:110
Smear_HYP_SF::index_v2
int index_v2(const int mu, int nu)
Definition: smear_HYP_SF.h:104
Smear_HYP_SF::size_v2
int size_v2()
Definition: smear_HYP_SF.h:112
AProjection
Base template class for projection operator into gauge group.
Definition: aprojection.h:31
Smear_HYP_SF::step2
void step2()
Definition: smear_HYP_SF.cpp:218
ShiftField_lex
Methods to shift a field in the lexical site index.
Definition: shiftField_lex.h:39
Smear_HYP_SF::m_vt1
Field_G * m_vt1
Definition: smear_HYP_SF.h:60
Smear_HYP_SF::Smear_HYP_SF
Smear_HYP_SF(Projection *proj, const Parameters &params)
Definition: smear_HYP_SF.h:65
smear.h
Smear_HYP_SF::class_name
static const std::string class_name
Definition: smear_HYP_SF.h:34
Smear_HYP_SF::m_v1
std::vector< Field_G > m_v1
Definition: smear_HYP_SF.h:48
Smear_HYP_SF::m_wkpr
Mat_SU_N m_wkpr
SF boundary condition at t=Nt.
Definition: smear_HYP_SF.h:54
Smear_HYP_SF::m_Nvol
int m_Nvol
Definition: smear_HYP_SF.h:39
Smear_HYP_SF::~Smear_HYP_SF
~Smear_HYP_SF()
Definition: smear_HYP_SF.h:70
Smear_HYP_SF::m_c2
Field_G * m_c2
Definition: smear_HYP_SF.h:57
Smear_HYP_SF::index_v1
int index_v1(const int mu, const int nu, const int rho)
Definition: smear_HYP_SF.h:97
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:45
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Smear_HYP_SF::m_shift
ShiftField_lex * m_shift
Definition: smear_HYP_SF.h:51
Smear_HYP_SF::m_phi
std::vector< double > m_phi
raw parameter values
Definition: smear_HYP_SF.h:43
Smear_HYP_SF::set_parameters
void set_parameters(const Parameters &params)
Definition: smear_HYP_SF.cpp:74
Smear_HYP_SF::m_c1
Field_G * m_c1
Definition: smear_HYP_SF.h:56
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:572