Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 #include "Smear/smear_APE_SF.h"
19 #include "Field/field_G_SF.h"
20 
21 #include "Field/shiftField_lex.h"
22 #include "bridge_complex.h"
23 
24 #include "Smear/projection.h"
25 
26 #include "IO/bridgeIO.h"
27 using Bridge::vout;
28 
30 
41 {
42  public:
43  static const std::string class_name;
44 
45  private:
46  int m_Ndim, m_Nvol;
47  std::vector<double> m_rho;
50  std::vector<Field_G> m_U;
51  std::vector<Field_G> m_iTheta;
52 
54  double m_phi[3];
56  double m_phipr[3];
57 
59 
60  public:
62  : ForceSmear(), m_proj(proj)
63  {
64  init();
65  }
66 
68  : ForceSmear(), m_proj(proj.get())
69  {
70  init();
71  }
72 
73  // ~ForceSmear_APE_SF(){
74  // };
75 
76  void set_parameters(const Parameters& params);
77 
78  void set_parameters(const double rho1, double *phi, double *phipr);
79  void set_parameters(const std::vector<double>& rho, double *phi, double *phipr);
80 
81  void force_udiv(Field_G& Sigma, const Field_G& Sigma_p, const Field_G& U);
82 
83  // old interface
84  //Field force_udiv(const Field_G& Sigma, const Field_G& U);
85 
86  private:
87 
88  void init();
89 
90  double rho(int mu, int nu)
91  {
92  return m_rho[mu + nu * m_Ndim];
93  }
94 
95  void force_each(Field_G&, const Field_G&, const Field_G&,
96  const Field_G&, const Field_G&, int mu, int nu);
97 
98  void staple(Field_G&, const Field_G&, const Field_G&,
99  int mu, int nu);
100 };
101 #endif
SU(N) gauge field class in which a few functions are added for the SF.
Definition: field_G_SF.h:33
BridgeIO vout
Definition: bridgeIO.cpp:495
void force_udiv(Field_G &Sigma, const Field_G &Sigma_p, const Field_G &U)
static const std::string class_name
void set_parameters(const Parameters &params)
std::vector< Field_G > m_iTheta
Class for parameters.
Definition: parameters.h:46
ForceSmear_APE_SF(Projection *proj)
void force_each(Field_G &, const Field_G &, const Field_G &, const Field_G &, const Field_G &, int mu, int nu)
Base class for force calculation of smeared operators.
Definition: forceSmear.h:34
std::vector< double > m_rho
SU(N) gauge field.
Definition: field_G.h:38
double m_phi[3]
SF boundary condition at t=0.
ShiftField_lex m_shift
base class for projection operator into gauge group.
Definition: projection.h:31
std::vector< Field_G > m_U
double m_phipr[3]
SF boundary condition at t=Nt.
void staple(Field_G &, const Field_G &, const Field_G &, int mu, int nu)
Methods to shift a field in the lexical site index.
Recursive calculation for APE smeared fermion force.
double rho(int mu, int nu)
ForceSmear_APE_SF(unique_ptr< Projection > &proj)