Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
projection_Maximum_SU_N.h
Go to the documentation of this file.
1 
15 #ifndef PROJECTION_MAXIMUM_SU_N_INCLUDED
16 #define PROJECTION_MAXIMUM_SU_N_INCLUDED
17 
18 #include "projection.h"
19 
20 #include "bridgeIO.h"
21 using Bridge::vout;
22 
24 
36 //- parameters class
38 {
39  public:
41 };
42 //- end
43 
45 {
46  public:
47  static const std::string class_name;
48 
49  private:
50  int m_Niter;
51  double m_Enorm;
52 
53  public:
55  {
56  //- defaults
57  m_Niter = 100;
58  m_Enorm = 1.0e-12;
59  }
60 
62 
63  void set_parameters(const Parameters& params);
64  void set_parameters(const int Niter, const double Enorm);
65 
67  void project(Field_G& U,
68  double alpha,
69  const Field_G& C, const Field_G& Uorg);
70 
72  void force_recursive(Field_G& Xi, Field_G& iTheta,
73  double alpha, const Field_G& Sigmap,
74  const Field_G& C, const Field_G& U);
75 
76  private:
77  //- maximization of ReTr[U^\dag V].
78  void maxTr(Field_G& U, Field_G& V);
79 
80  //- maximization by SU(2) subgroup.
81  void maxTr_SU2(int, int, Field_G&, Field_G&, Field_G&);
82 
83  //- matrix index for convenience.
84  int mindex(int i, int j, int Nc)
85  {
86  return i + j * Nc;
87  }
88 };
89 #endif
Maximum projection to SU(N) gauge group.
BridgeIO vout
Definition: bridgeIO.cpp:207
void set_parameters(const Parameters &params)
void maxTr(Field_G &U, Field_G &V)
double m_Enorm
convergence criterion of maximization
Class for parameters.
Definition: parameters.h:40
SU(N) gauge field.
Definition: field_G.h:36
void project(Field_G &U, double alpha, const Field_G &C, const Field_G &Uorg)
projection U = P[alpha, C, Uorg]
int m_Niter
maximum iteration of maximization steps
base class for projection operator into gauge group.
Definition: projection.h:33
static const std::string class_name
void maxTr_SU2(int, int, Field_G &, Field_G &, Field_G &)
int mindex(int i, int j, int Nc)
void force_recursive(Field_G &Xi, Field_G &iTheta, double alpha, const Field_G &Sigmap, const Field_G &C, const Field_G &U)
force calculation: invalid in this class.