Bridge++  Ver. 2.0.2
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:
43 
44  unsigned long int m_flop;
45  double m_time;
46 
47  public:
49  : m_vl(CommonParameters::Vlevel())
50  {
51  init();
52  }
53 
55  : m_vl(CommonParameters::Vlevel())
56  {
57  init();
58  set_parameters(params);
59  }
60 
62 
63  void set_parameters(const Parameters& param);
64 
65  void get_parameters(Parameters& param) const;
66 
68  void project(Field_G& U,
69  const double alpha,
70  const Field_G& C, const Field_G& Uorg);
71 
73  void force_recursive(Field_G& Xi, Field_G& iTheta,
74  const double alpha, const Field_G& Sigmap,
75  const Field_G& C, const Field_G& U);
76 
77  void print_stat();
78 
79  private:
80  void exp_iQ(Field_G& e_iQ, const Field_G& iQ);
81  void exp_iQ_bf(Field_G& e_iQ, const Field_G& iQ);
82 
83  void set_uw(double& u, double& w,
84  const Mat_SU_N& iQ2, const Mat_SU_N& iQ3);
85 
86  void set_fj(dcomplex& f0, dcomplex& f1, dcomplex& f2,
87  const double& u, const double& w);
88 
89  double func_xi0(const double w);
90  double func_xi1(const double w);
91 
92  void init();
93 
94 #ifdef USE_FACTORY
95  private:
96  static Projection *create_object()
97  {
98  return new Projection_Stout_SU3();
99  }
100 
101  static Projection *create_object_with_params(const Parameters& params)
102  {
103  return new Projection_Stout_SU3(params);
104  }
105 
106  public:
107  static bool register_factory()
108  {
109  bool init = true;
110  init &= Projection::Factory::Register("Stout_SU3", create_object);
111  init &= Projection::Factory_params::Register("Stout_SU3", create_object_with_params);
112  return init;
113  }
114 #endif
115 };
116 #endif
Projection_Stout_SU3::get_parameters
void get_parameters(Parameters &param) const
Definition: projection_Stout_SU3.cpp:35
Projection_Stout_SU3::m_flop
unsigned long int m_flop
Definition: projection_Stout_SU3.h:44
bridgeIO.h
Projection_Stout_SU3
Stout(exponential)-type projection to SU(N) gauge group.
Definition: projection_Stout_SU3.h:36
CommonParameters
Common parameter class: provides parameters as singleton.
Definition: commonParameters.h:42
Projection_Stout_SU3::print_stat
void print_stat()
Definition: projection_Stout_SU3.cpp:58
Projection_Stout_SU3::m_vl
Bridge::VerboseLevel m_vl
Definition: projection_Stout_SU3.h:42
Parameters
Class for parameters.
Definition: parameters.h:46
Projection_Stout_SU3::exp_iQ
void exp_iQ(Field_G &e_iQ, const Field_G &iQ)
Definition: projection_Stout_SU3.cpp:151
Projection_Stout_SU3::init
void init()
Definition: projection_Stout_SU3.cpp:42
Projection_Stout_SU3::Projection_Stout_SU3
Projection_Stout_SU3(const Parameters &params)
Definition: projection_Stout_SU3.h:54
Projection_Stout_SU3::Projection_Stout_SU3
Projection_Stout_SU3()
Definition: projection_Stout_SU3.h:48
projection.h
Projection_Stout_SU3::force_recursive
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
Definition: projection_Stout_SU3.cpp:204
Projection_Stout_SU3::set_parameters
void set_parameters(const Parameters &param)
Definition: projection_Stout_SU3.cpp:25
Projection_Stout_SU3::m_time
double m_time
Definition: projection_Stout_SU3.h:45
Projection_Stout_SU3::exp_iQ_bf
void exp_iQ_bf(Field_G &e_iQ, const Field_G &iQ)
Definition: projection_Stout_SU3.cpp:476
Projection_Stout_SU3::class_name
static const std::string class_name
Definition: projection_Stout_SU3.h:39
Projection_Stout_SU3::set_fj
void set_fj(dcomplex &f0, dcomplex &f1, dcomplex &f2, const double &u, const double &w)
Definition: projection_Stout_SU3.cpp:400
Projection_Stout_SU3::set_uw
void set_uw(double &u, double &w, const Mat_SU_N &iQ2, const Mat_SU_N &iQ3)
Definition: projection_Stout_SU3.cpp:430
SU_N::Mat_SU_N
Definition: mat_SU_N.h:36
Projection_Stout_SU3::func_xi1
double func_xi1(const double w)
Definition: projection_Stout_SU3.cpp:458
Projection_Stout_SU3::project
void project(Field_G &U, const double alpha, const Field_G &C, const Field_G &Uorg)
projection U = P[alpha, C, Uorg]
Definition: projection_Stout_SU3.cpp:70
Projection_Stout_SU3::~Projection_Stout_SU3
~Projection_Stout_SU3()
Definition: projection_Stout_SU3.h:61
Projection
base class for projection operator into gauge group.
Definition: projection.h:30
Projection_Stout_SU3::func_xi0
double func_xi0(const double w)
Definition: projection_Stout_SU3.cpp:447
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512