Bridge++  Version 1.6.1
 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 
37 {
38  public:
39  static const std::string class_name;
40 
41  private:
42  unsigned long int m_flop;
43  double m_time;
44 
45  public:
46 
48  {
49  init();
50  }
51 
53 
54  void set_parameters(const Parameters& param);
55 
57  void project(Field_G& U,
58  const double alpha,
59  const Field_G& C, const Field_G& Uorg);
60 
62  void force_recursive(Field_G& Xi, Field_G& iTheta,
63  const double alpha, const Field_G& Sigmap,
64  const Field_G& C, const Field_G& U);
65 
66  void print_stat();
67 
68  private:
69  void exp_iQ(Field_G& e_iQ, const Field_G& iQ);
70  void exp_iQ_bf(Field_G& e_iQ, const Field_G& iQ);
71 
72  void set_uw(double& u, double& w,
73  const Mat_SU_N& iQ2, const Mat_SU_N& iQ3);
74 
75  void set_fj(dcomplex& f0, dcomplex& f1, dcomplex& f2,
76  const double& u, const double& w);
77 
78  double func_xi0(const double w);
79  double func_xi1(const double w);
80 
81  void init();
82 
83 #ifdef USE_FACTORY
84  private:
85  static Projection *create_object()
86  {
87  return new Projection_Stout_SU3();
88  }
89 
90  public:
91  static bool register_factory()
92  {
93  return Projection::Factory::Register("Stout_SU3", create_object);
94  }
95 #endif
96 };
97 #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.