Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
projection_Stout_SU3.h
Go to the documentation of this file.
1 
14 #ifndef PROJECTION_STOUT_SU3_INCLUDED
15 #define PROJECTION_STOUT_SU3_INCLUDED
16 
17 #include "projection.h"
18 
19 #include "IO/bridgeIO.h"
20 using Bridge::vout;
21 
22 // The following implementation only valid for Nc = 3 case.
23 #define NC 3
24 
25 
27 
35 {
36  public:
37  static const std::string class_name;
38 
39  private:
40  unsigned long int m_flop;
41  double m_time;
42 
43  public:
44 
46  {
47  init();
48  }
49 
51 
52  void set_parameters(const Parameters& param);
53 
55  void project(Field_G& U,
56  const double alpha,
57  const Field_G& C, const Field_G& Uorg);
58 
60  void force_recursive(Field_G& Xi, Field_G& iTheta,
61  const double alpha, const Field_G& Sigmap,
62  const Field_G& C, const Field_G& U);
63 
64  void print_stat();
65 
66  private:
67  void exp_iQ(Field_G& e_iQ, const Field_G& iQ);
68  void exp_iQ_bf(Field_G& e_iQ, const Field_G& iQ);
69 
70  void set_uw(double& u, double& w,
71  const Mat_SU_N& iQ2, const Mat_SU_N& iQ3);
72 
73  void set_fj(dcomplex& f0, dcomplex& f1, dcomplex& f2,
74  const double& u, const double& w);
75 
76  double func_xi0(const double w);
77  double func_xi1(const double w);
78 
79  void init();
80 
81 #ifdef USE_FACTORY
82  private:
83  static Projection *create_object()
84  {
85  return new Projection_Stout_SU3();
86  }
87 
88  public:
89  static bool register_factory()
90  {
91  return Projection::Factory::Register("Stout_SU3", create_object);
92  }
93 #endif
94 };
95 #endif
BridgeIO vout
Definition: bridgeIO.cpp:503
void force_recursive(Field_G &Xi, Field_G &iTheta, const double alpha, const Field_G &Sigmap, const Field_G &C, const Field_G &U)
determination of fields for force calculation
unsigned long int m_flop
double func_xi1(const double w)
void set_uw(double &u, double &w, const Mat_SU_N &iQ2, const Mat_SU_N &iQ3)
Class for parameters.
Definition: parameters.h:46
double func_xi0(const double w)
void project(Field_G &U, const double alpha, const Field_G &C, const Field_G &Uorg)
projection U = P[alpha, C, Uorg]
SU(N) gauge field.
Definition: field_G.h:38
void set_fj(dcomplex &f0, dcomplex &f1, dcomplex &f2, const double &u, const double &w)
base class for projection operator into gauge group.
Definition: projection.h:30
void set_parameters(const Parameters &param)
void exp_iQ(Field_G &e_iQ, const Field_G &iQ)
void exp_iQ_bf(Field_G &e_iQ, const Field_G &iQ)
static const std::string class_name
Stout(exponential)-type projection to SU(N) gauge group.