Bridge++  Version 1.4.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 
15 #ifndef PROJECTION_MAXIMUM_SU_N_INCLUDED
16 #define PROJECTION_MAXIMUM_SU_N_INCLUDED
17 
18 #include "projection.h"
19 
20 #include "IO/bridgeIO.h"
21 using Bridge::vout;
22 
24 
38 {
39  public:
40  static const std::string class_name;
41 
42  private:
43  int m_Niter;
44  double m_Enorm;
45 
46  public:
48  {
49  //- defaults
50  m_Niter = 100;
51  m_Enorm = 1.0e-12;
52  }
53 
55 
56  void set_parameters(const Parameters& params);
57  void set_parameters(const int Niter, const double Enorm);
58 
60  void project(Field_G& U,
61  double alpha,
62  const Field_G& C, const Field_G& Uorg);
63 
65  void force_recursive(Field_G& Xi, Field_G& iTheta,
66  double alpha, const Field_G& Sigmap,
67  const Field_G& C, const Field_G& U);
68 
69  private:
70  //- maximization of ReTr[U^\dag V].
71  void maxTr(Field_G& U, Field_G& V);
72 
73  //- maximization by SU(2) subgroup.
74  void maxTr_SU2(int, int, Field_G&, Field_G&, Field_G&);
75 
76  //- matrix index for convenience.
77  int mindex(int i, int j, int Nc)
78  {
79  return i + j * Nc;
80  }
81 };
82 #endif
BridgeIO vout
Definition: bridgeIO.cpp:495
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:46
Maximum projection to SU(N) gauge group.
SU(N) gauge field.
Definition: field_G.h:38
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:31
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.