Bridge++  Ver. 1.3.x
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_APE_SF.h"
19 #include "field_G_SF.h"
20 
21 #include "shiftField_lex.h"
22 #include "bridge_complex.h"
23 
24 #include "projection.h"
25 
26 #include "bridgeIO.h"
27 using Bridge::vout;
28 
30 
39 //- parameters class
41 {
42  public:
44 };
45 //- end
46 
48 {
49  public:
50  static const std::string class_name;
51 
52  private:
53  int m_Ndim, m_Nvol;
54  std::vector<double> m_rho;
57  std::vector<Field_G> m_U;
58  std::vector<Field_G> m_iTheta;
59 
61  double m_phi[3];
63  double m_phipr[3];
64 
66 
67  public:
69  : ForceSmear(), m_proj(proj)
70  {
71  init();
72  }
73 
75  : ForceSmear(), m_proj(proj.get())
76  {
77  init();
78  }
79 
80  // ~ForceSmear_APE_SF(){
81  // };
82 
83  void set_parameters(const Parameters& params);
84 
85 // void set_parameters (const Parameters_Smear_APE_SF& params);
86 
87  void set_parameters(const double rho1, double *phi, double *phipr);
88  void set_parameters(const std::vector<double>& rho, double *phi, double *phipr);
89 
90  void force_udiv(Field_G& Sigma, const Field_G& Sigma_p, const Field_G& U);
91 
92  // old interface
93  //Field force_udiv(const Field_G& Sigma, const Field_G& U);
94 
95  private:
96 
97  void init();
98 
99  double rho(int mu, int nu)
100  {
101  return m_rho[mu + nu * m_Ndim];
102  }
103 
104  void force_each(Field_G&, const Field_G&, const Field_G&,
105  const Field_G&, const Field_G&, int mu, int nu);
106 
107  void staple(Field_G&, const Field_G&, const Field_G&,
108  int mu, int nu);
109 };
110 #endif
BridgeIO vout
Definition: bridgeIO.cpp:278
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:38
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
Recursive calculation for APE smeared fermion force.
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.
double rho(int mu, int nu)
ForceSmear_APE_SF(unique_ptr< Projection > &proj)