Bridge++  Version 1.5.4
 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 
14 #ifndef PROJECTION_MAXIMUM_SU_N_INCLUDED
15 #define PROJECTION_MAXIMUM_SU_N_INCLUDED
16 
17 #include "projection.h"
18 
19 #include "IO/bridgeIO.h"
20 using Bridge::vout;
21 
23 
37 {
38  public:
39  static const std::string class_name;
40 
41  private:
42  int m_Niter;
43  double m_Enorm;
44 
45  public:
47  {
48  //- defaults
49  m_Niter = 100;
50  m_Enorm = 1.0e-12;
51  }
52 
54 
55  void set_parameters(const Parameters& params);
56  void set_parameters(const int Niter, const double Enorm);
57 
59  void project(Field_G& U,
60  const double alpha,
61  const Field_G& C, const Field_G& Uorg);
62 
64  void force_recursive(Field_G& Xi, Field_G& iTheta,
65  const double alpha, const Field_G& Sigmap,
66  const Field_G& C, const Field_G& U);
67 
68  private:
69  //- maximization of ReTr[U^\dag V].
70  void maxTr(Field_G& U, const Field_G& V);
71 
72  //- maximization by SU(2) subgroup.
73  void maxTr_SU2(const int, const int, Field_G&, Field_G&, Field_G&);
74 
75  //- matrix index for convenience.
76  int mindex(const int i, const int j, const int Nc)
77  {
78  return i + j * Nc;
79  }
80 
81 #ifdef USE_FACTORY
82  private:
83  static Projection *create_object()
84  {
85  return new Projection_Maximum_SU_N();
86  }
87 
88  public:
89  static bool register_factory()
90  {
91  return Projection::Factory::Register("Maximum_SU_N", create_object);
92  }
93 #endif
94 };
95 #endif
BridgeIO vout
Definition: bridgeIO.cpp:503
void maxTr(Field_G &U, const Field_G &V)
void set_parameters(const Parameters &params)
double m_Enorm
convergence criterion of maximization
Class for parameters.
Definition: parameters.h:46
int mindex(const int i, const int j, const int Nc)
void force_recursive(Field_G &Xi, Field_G &iTheta, const double alpha, const Field_G &Sigmap, const Field_G &C, const Field_G &U)
force calculation: invalid in this class.
Maximum projection to SU(N) gauge group.
SU(N) gauge field.
Definition: field_G.h:38
void project(Field_G &U, const double alpha, const Field_G &C, const Field_G &Uorg)
projection U = P[alpha, C, Uorg]
int m_Niter
maximum iteration of maximization steps
void maxTr_SU2(const int, const int, Field_G &, Field_G &, Field_G &)
base class for projection operator into gauge group.
Definition: projection.h:30
static const std::string class_name