Bridge++  Ver.2.1.3
projection_Maximum_SU_N.h
Go to the documentation of this file.
1 
10 #ifndef PROJECTION_MAXIMUM_SU_N_INCLUDED
11 #define PROJECTION_MAXIMUM_SU_N_INCLUDED
12 
13 #include "projection.h"
14 
15 #include "IO/bridgeIO.h"
16 using Bridge::vout;
17 
19 
33 {
34  public:
35  static const std::string class_name;
36 
37  private:
38  int m_Niter;
39  double m_Enorm;
40 
42 
48 
49  public:
50 
52  { init(params); }
53 
55 
56  void set_parameters(const Parameters& params);
57 
58  void set_parameters(const int Niter, const double Enorm);
59 
60  void get_parameters(Parameters& params) const;
61 
63  void project(Field_G& U,
64  const double alpha,
65  const Field_G& C, const Field_G& Uorg);
66 
68  void force_recursive(Field_G& Xi, Field_G& iTheta,
69  const double alpha, const Field_G& Sigmap,
70  const Field_G& C, const Field_G& U);
71 
72  private:
73 
74  void init(const Parameters& params);
75 
76  void tidyup();
77 
78  void reset_field(const Field_G& Uref);
79 
81  void maxTr(Field_G& U, const Field_G& V);
82 
84  void maxTr_SU2(const int, const int, Field_G&, Field_G&, Field_G&);
85 
87  int mindex(const int i, const int j, const int Nc)
88  { return i + j * Nc; }
89 
90 
91 #ifdef USE_FACTORY
92  private:
93 
94  static Projection *create_object_with_params(const Parameters& params)
95  { return new Projection_Maximum_SU_N(params); }
96 
97  public:
98  static bool register_factory()
99  {
100  bool init = true;
101  init &= Projection::Factory_params::Register("Maximum_SU_N", create_object_with_params);
102  return init;
103  }
104 #endif
105 };
106 #endif
Projection_Maximum_SU_N::init
void init(const Parameters &params)
Definition: projection_Maximum_SU_N.cpp:24
bridgeIO.h
Projection_Maximum_SU_N::tidyup
void tidyup()
Definition: projection_Maximum_SU_N.cpp:57
Parameters
Class for parameters.
Definition: parameters.h:46
Projection_Maximum_SU_N::m_At
Field_G * m_At
Definition: projection_Maximum_SU_N.h:43
Projection_Maximum_SU_N::m_vt
Field_G * m_vt
Definition: projection_Maximum_SU_N.h:46
Projection_Maximum_SU_N::maxTr_SU2
void maxTr_SU2(const int, const int, Field_G &, Field_G &, Field_G &)
maximization by SU(2) subgroup.
Definition: projection_Maximum_SU_N.cpp:292
Projection_Maximum_SU_N::~Projection_Maximum_SU_N
~Projection_Maximum_SU_N()
Definition: projection_Maximum_SU_N.h:54
projection.h
Projection_Maximum_SU_N::m_vl
Bridge::VerboseLevel m_vl
verbose level
Definition: projection_Maximum_SU_N.h:41
Projection_Maximum_SU_N::get_parameters
void get_parameters(Parameters &params) const
Definition: projection_Maximum_SU_N.cpp:122
Projection_Maximum_SU_N
Maximum projection to SU(N) gauge group.
Definition: projection_Maximum_SU_N.h:32
Projection_Maximum_SU_N::m_Dlt
Field_G * m_Dlt
Definition: projection_Maximum_SU_N.h:44
Projection_Maximum_SU_N::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)
force calculation: invalid in this class.
Definition: projection_Maximum_SU_N.cpp:190
Projection_Maximum_SU_N::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_Maximum_SU_N.cpp:160
Projection_Maximum_SU_N::mindex
int mindex(const int i, const int j, const int Nc)
matrix index for convenience.
Definition: projection_Maximum_SU_N.h:87
Projection_Maximum_SU_N::reset_field
void reset_field(const Field_G &Uref)
Definition: projection_Maximum_SU_N.cpp:132
Projection_Maximum_SU_N::set_parameters
void set_parameters(const Parameters &params)
Definition: projection_Maximum_SU_N.cpp:67
AProjection
Base template class for projection operator into gauge group.
Definition: aprojection.h:31
Projection_Maximum_SU_N::m_wt
Field_G * m_wt
Definition: projection_Maximum_SU_N.h:47
Projection_Maximum_SU_N::m_Enorm
double m_Enorm
convergence criterion of maximization
Definition: projection_Maximum_SU_N.h:39
Projection_Maximum_SU_N::m_Ut
Field_G * m_Ut
Definition: projection_Maximum_SU_N.h:45
Projection_Maximum_SU_N::Projection_Maximum_SU_N
Projection_Maximum_SU_N(const Parameters &params)
Definition: projection_Maximum_SU_N.h:51
Projection_Maximum_SU_N::maxTr
void maxTr(Field_G &U, const Field_G &V)
maximization of ReTr[U^\dag V].
Definition: projection_Maximum_SU_N.cpp:204
Projection_Maximum_SU_N::class_name
static const std::string class_name
Definition: projection_Maximum_SU_N.h:35
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:45
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Projection_Maximum_SU_N::m_Niter
int m_Niter
maximum iteration of maximization steps
Definition: projection_Maximum_SU_N.h:38
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:572