Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gaugeFixing_Landau.h
Go to the documentation of this file.
1 
14 #ifndef GAUGEFIXING_LANDAU_INCLUDED
15 #define GAUGEFIXING_LANDAU_INCLUDED
16 
17 #include "gaugeFixing.h"
18 
19 #include "index_eo.h"
20 #include "shiftField_eo.h"
21 
22 #include "randomNumbers.h"
23 
24 #include "bridgeIO.h"
25 using Bridge::vout;
26 
27 //- parameters class
29 {
30  public:
32 };
33 //- end
34 
36 
37 /*
38  This class fix the gauge of configuration to the Landau gauge.
39  The algorithm is that developed by the Los Alamos group [see the
40  implementation note].
41  Overrelaxation is incorporated.
42  To escape the Gribov copy, if convergence is not reached within
43  the iterations specified by Nreset, random gauge transformation
44  is performed to reset the configuration.
45  This is the reason that random number generator is needed at the
46  construction of this class.
47 
48  The implementation is not complete:
49  - only applies to SU(3) case: because of specific implementation
50  of maxTr function (Cabibbo-Marinari maximization).
51  This should be improved in the version beyond test phase.
52  [16 Feb 2012 H.Matsufuru]
53  (Coding history will be recovered from trac.)
54  YAML is implemented. [14 Nov 2012 Y.Namekawa]
55  */
56 
58 {
59  public:
60  static const std::string class_name;
61 
62  private:
63 
64  int m_Niter; // max iteration number
65  int m_Nnaive; // number of naive iterations
66  int m_Nmeas; // interval of measurements
67  int m_Nreset; // Number of iteration to reset the config.
68  double m_Enorm; // convergence criterion
69  double m_wp; // overrelaxation parameter
72 
73  public:
74 
76  : GaugeFixing(), m_Niter(0), m_rand(rand) {}
77 
79 
80  void set_parameters(const Parameters& params);
81  void set_parameters(int Niter, int Nnaive, int Nmeas,
82  int Nreset, double Enorm, double wp);
83 
84  void fix(Field_G& Ufix, const Field_G& Uorg);
85 
86  void gauge_trans_eo(Field_G& Ue, Field_G& Uo, Field_G& Geo, int Ieo);
87 
88  void set_randomGaugeTrans(Field_G& Geo);
89 
91  void gfix_step(Field_G& Ue, Field_G& Uo, double wp);
92 
93  void calc_SG(double& sg, double& Fval, Field_G& Ue, Field_G& Uo);
94  void calc_W(Field_G& Weo, Field_G& Ue, Field_G& Uo, int Ieo);
95  void calc_DLT(Field_G& Weo, Field_G& Ue, Field_G& Uo, int Ieo);
96 
97  void maxTr(Field_G&, Field_G&);
98  void maxTr1(Field_G&, Field_G&);
99  void maxTr2(Field_G&, Field_G&);
100  void maxTr3(Field_G&, Field_G&);
101 };
102 #endif
BridgeIO vout
Definition: bridgeIO.cpp:207
void maxTr2(Field_G &, Field_G &)
static const std::string class_name
Class for parameters.
Definition: parameters.h:40
Even-odd site index.
Definition: index_eo.h:39
void calc_DLT(Field_G &Weo, Field_G &Ue, Field_G &Uo, int Ieo)
SU(N) gauge field.
Definition: field_G.h:36
void maxTr1(Field_G &, Field_G &)
void maxTr3(Field_G &, Field_G &)
void set_parameters(const Parameters &params)
void calc_W(Field_G &Weo, Field_G &Ue, Field_G &Uo, int Ieo)
Base class of random number generators.
Definition: randomNumbers.h:40
void gfix_step(Field_G &Ue, Field_G &Uo, double wp)
one step of gauge fixing with overrelaxation parameter wp.
RandomNumbers * m_rand
Landau gauge fixing.
gauge fixing.
Definition: gaugeFixing.h:34
void calc_SG(double &sg, double &Fval, Field_G &Ue, Field_G &Uo)
void fix(Field_G &Ufix, const Field_G &Uorg)
void maxTr(Field_G &, Field_G &)
void gauge_trans_eo(Field_G &Ue, Field_G &Uo, Field_G &Geo, int Ieo)
GaugeFixing_Landau(RandomNumbers *rand)
void set_randomGaugeTrans(Field_G &Geo)