Bridge++  Ver. 2.0.2
forceSmear_APE_SF.h
Go to the documentation of this file.
1 
14 #ifndef FORCESMEAR_APE_ALT_INCLUDED
15 #define FORCESMEAR_APE_ALT_INCLUDED
16 
17 #include "forceSmear.h"
18 
19 #include "Field/field_SF.h"
20 #include "Field/shiftField_lex.h"
21 
22 #include "Smear/smear_APE_SF.h"
23 #include "Smear/projection.h"
24 
25 #include "IO/bridgeIO.h"
26 using Bridge::vout;
27 
29 
40 {
41  public:
42  static const std::string class_name;
43 
44  private:
46 
47  int m_Ndim, m_Nvol;
48  std::vector<double> m_rho;
51  std::vector<Field_G> m_U;
52  std::vector<Field_G> m_iTheta;
53 
55  std::vector<double> m_phi;
57  std::vector<double> m_phipr;
58 
61 
62  // Field_G_SF set_wk;
63 
64  public:
66  : m_vl(CommonParameters::Vlevel()), m_proj(proj),
68  {
69  init();
70  }
71 
72  ForceSmear_APE_SF(Projection *proj, const Parameters& params)
73  : m_vl(CommonParameters::Vlevel()), m_proj(proj),
75  {
76  init();
77  set_parameters(params);
78  }
79 
80  // ~ForceSmear_APE_SF(){
81  // };
82 
83  void set_parameters(const Parameters& params);
84 
85  void set_parameters(const double rho1,
86  const std::vector<double>& phi,
87  const std::vector<double>& phipr);
88 
89  void set_parameters(const std::vector<double>& rho,
90  const std::vector<double>& phi,
91  const std::vector<double>& phipr);
92 
93  void get_parameters(Parameters& params) const;
94 
95  void force_udiv(Field_G& Sigma, const Field_G& Sigma_p, const Field_G& U);
96 
97  // old interface
98  //Field force_udiv(const Field_G& Sigma, const Field_G& U);
99 
100  private:
101  void init();
102 
103  double rho(const int mu, const int nu)
104  {
105  return m_rho[mu + nu * m_Ndim];
106  }
107 
108  void force_each(Field_G&,
109  const Field_G&, const Field_G&,
110  const Field_G&, const Field_G&, const int mu, const int nu);
111 
112  void staple(Field_G&,
113  const Field_G&, const Field_G&,
114  const int mu, const int nu);
115 
116 #ifdef USE_FACTORY
117  private:
118  static ForceSmear *create_object(Projection *proj)
119  {
120  return new ForceSmear_APE_SF(proj);
121  }
122 
123  static ForceSmear *create_object_with_params(Projection *proj, const Parameters& params)
124  {
125  return new ForceSmear_APE_SF(proj, params);
126  }
127 
128  public:
129  static bool register_factory()
130  {
131  bool init = true;
132  init &= ForceSmear::Factory::Register("APE_SF", create_object);
133  init &= ForceSmear::Factory_params::Register("APE_SF", create_object_with_params);
134  return init;
135  }
136 #endif
137 };
138 #endif
ForceSmear_APE_SF::m_U
std::vector< Field_G > m_U
Definition: forceSmear_APE_SF.h:51
bridgeIO.h
CommonParameters
Common parameter class: provides parameters as singleton.
Definition: commonParameters.h:42
ForceSmear_APE_SF::m_phi
std::vector< double > m_phi
SF boundary condition at t=0.
Definition: forceSmear_APE_SF.h:55
Parameters
Class for parameters.
Definition: parameters.h:46
shiftField_lex.h
ForceSmear_APE_SF::m_wk
Mat_SU_N m_wk
SF boundary condition at t=0.
Definition: forceSmear_APE_SF.h:59
ForceSmear_APE_SF::ForceSmear_APE_SF
ForceSmear_APE_SF(Projection *proj)
Definition: forceSmear_APE_SF.h:65
ForceSmear_APE_SF::force_udiv
void force_udiv(Field_G &Sigma, const Field_G &Sigma_p, const Field_G &U)
Definition: forceSmear_APE_SF.cpp:240
ForceSmear_APE_SF::get_parameters
void get_parameters(Parameters &params) const
Definition: forceSmear_APE_SF.cpp:53
ForceSmear_APE_SF::set_parameters
void set_parameters(const Parameters &params)
Definition: forceSmear_APE_SF.cpp:25
ForceSmear_APE_SF::rho
double rho(const int mu, const int nu)
Definition: forceSmear_APE_SF.h:103
ForceSmear_APE_SF::m_rho
std::vector< double > m_rho
Definition: forceSmear_APE_SF.h:48
projection.h
forceSmear.h
ForceSmear_APE_SF::m_shift
ShiftField_lex m_shift
Definition: forceSmear_APE_SF.h:50
ForceSmear_APE_SF::m_Nvol
int m_Nvol
Definition: forceSmear_APE_SF.h:47
ForceSmear_APE_SF::class_name
static const std::string class_name
Definition: forceSmear_APE_SF.h:42
ForceSmear_APE_SF::m_iTheta
std::vector< Field_G > m_iTheta
Definition: forceSmear_APE_SF.h:52
SU_N::Mat_SU_N
Definition: mat_SU_N.h:36
ForceSmear_APE_SF::m_wkpr
Mat_SU_N m_wkpr
SF boundary condition at t=Nt.
Definition: forceSmear_APE_SF.h:60
field_SF.h
ForceSmear_APE_SF
Recursive calculation for APE smeared fermion force.
Definition: forceSmear_APE_SF.h:39
ForceSmear_APE_SF::m_proj
Projection * m_proj
Definition: forceSmear_APE_SF.h:49
ShiftField_lex
Methods to shift a field in the lexical site index.
Definition: shiftField_lex.h:39
ForceSmear_APE_SF::m_Ndim
int m_Ndim
Definition: forceSmear_APE_SF.h:47
ForceSmear_APE_SF::m_phipr
std::vector< double > m_phipr
SF boundary condition at t=Nt.
Definition: forceSmear_APE_SF.h:57
ForceSmear_APE_SF::m_vl
Bridge::VerboseLevel m_vl
Definition: forceSmear_APE_SF.h:45
Projection
base class for projection operator into gauge group.
Definition: projection.h:30
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42
Field_G
SU(N) gauge field.
Definition: field_G.h:38
smear_APE_SF.h
ForceSmear_APE_SF::init
void init()
Definition: forceSmear_APE_SF.cpp:197
ForceSmear
Base class for force calculation of smeared operators.
Definition: forceSmear.h:34
ForceSmear_APE_SF::ForceSmear_APE_SF
ForceSmear_APE_SF(Projection *proj, const Parameters &params)
Definition: forceSmear_APE_SF.h:72
ForceSmear_APE_SF::force_each
void force_each(Field_G &, const Field_G &, const Field_G &, const Field_G &, const Field_G &, const int mu, const int nu)
Definition: forceSmear_APE_SF.cpp:307
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512
ForceSmear_APE_SF::staple
void staple(Field_G &, const Field_G &, const Field_G &, const int mu, const int nu)
Definition: forceSmear_APE_SF.cpp:363