42 const int Nin = iP.
nin();
43 const int Nvol = iP.
nvol();
44 const int Nex = iP.
nex();
47 const int NcA = Nc * Nc - 1;
52 std::vector<Mat_SU_N *> iT(NcA);
53 for (
int i = 0; i < NcA; ++i) {
60 Field Hrand(NcA, Nvol, Nex);
63 for (
int ex = 0; ex < Nex; ++ex) {
64 for (
int site = 0; site < Nvol; ++site) {
66 for (
int i = 0; i < NcA; ++i) {
68 u_tmp2 *= 2.0 * Hrand.
cmp(i, site, ex);
76 for (
int i = 0; i < NcA; ++i) {
80 const double iP2 = iP.
norm();
82 return 0.5 * iP2 * iP2;
92 const int Nin = iP.
nin();
93 const int Nvol = iP.
nvol();
94 const int Nex = iP.
nex();
97 const int NcA = Nc * Nc - 1;
102 Field Hrand(NcA, Nvol, Nex);
106 const double sq3r = 1.0 / sqrt(3.0);
107 const double sq3r2 = 2.0 * sq3r;
109 for (
int ex = 0; ex < Nex; ++ex) {
110 for (
int site = 0; site < Nvol; ++site) {
113 double hc1 = Hrand.
cmp(0, site, ex);
114 double hc2 = Hrand.
cmp(1, site, ex);
115 double hc4 = Hrand.
cmp(2, site, ex);
116 double hc5 = Hrand.
cmp(3, site, ex);
117 double hc6 = Hrand.
cmp(4, site, ex);
118 double hc7 = Hrand.
cmp(5, site, ex);
119 double hc3 = Hrand.
cmp(6, site, ex);
120 double hc8 = Hrand.
cmp(7, site, ex);
122 iP.
set(0, site, ex, 0.0);
123 iP.
set(1, site, ex, hc3 + hc8 * sq3r);
124 iP.
set(2, site, ex, hc2);
125 iP.
set(3, site, ex, hc1);
126 iP.
set(4, site, ex, hc5);
127 iP.
set(5, site, ex, hc4);
128 iP.
set(6, site, ex, -hc2);
129 iP.
set(7, site, ex, hc1);
130 iP.
set(8, site, ex, 0.0);
131 iP.
set(9, site, ex, -hc3 + hc8 * sq3r);
132 iP.
set(10, site, ex, hc7);
133 iP.
set(11, site, ex, hc6);
134 iP.
set(12, site, ex, -hc5);
135 iP.
set(13, site, ex, hc4);
136 iP.
set(14, site, ex, -hc7);
137 iP.
set(15, site, ex, hc6);
138 iP.
set(16, site, ex, 0.0);
139 iP.
set(17, site, ex, -hc8 * sq3r2);
143 const double iP2 = iP.
norm();
145 return 0.5 * iP2 * iP2;
154 const int Nin = iP.
nin();
155 const int Nvol = iP.
nvol();
156 const int Nex = iP.
nex();
159 const int NcA = Nc * Nc - 1;
164 Field Hrand(NcA, Nvol, Nex);
168 const double sq3r = 1.0 / sqrt(3.0);
169 const double sq3r2 = 2.0 * sq3r;
171 for (
int ex = 0; ex < Nex; ++ex) {
172 for (
int site = 0; site < Nvol; ++site) {
175 double hc1 = Hrand.
cmp(0, site, ex);
176 double hc2 = Hrand.
cmp(1, site, ex);
177 double hc3 = Hrand.
cmp(2, site, ex);
178 double hc4 = Hrand.
cmp(3, site, ex);
179 double hc5 = Hrand.
cmp(4, site, ex);
180 double hc6 = Hrand.
cmp(5, site, ex);
181 double hc7 = Hrand.
cmp(6, site, ex);
182 double hc8 = Hrand.
cmp(7, site, ex);
191 iP.
set(0, site, ex, 0.0);
192 iP.
set(1, site, ex, hc3 + hc8 * sq3r);
193 iP.
set(2, site, ex, hc2);
194 iP.
set(3, site, ex, hc1);
195 iP.
set(4, site, ex, hc5);
196 iP.
set(5, site, ex, hc4);
197 iP.
set(6, site, ex, -hc2);
198 iP.
set(7, site, ex, hc1);
199 iP.
set(8, site, ex, 0.0);
200 iP.
set(9, site, ex, -hc3 + hc8 * sq3r);
201 iP.
set(10, site, ex, hc7);
202 iP.
set(11, site, ex, hc6);
203 iP.
set(12, site, ex, -hc5);
204 iP.
set(13, site, ex, hc4);
205 iP.
set(14, site, ex, -hc7);
206 iP.
set(15, site, ex, hc6);
207 iP.
set(16, site, ex, 0.0);
208 iP.
set(17, site, ex, -hc8 * sq3r2);
212 const double iP2 = iP.
norm();
214 return 0.5 * iP2 * iP2;
void set(const int jin, const int site, const int jex, double v)
void general(const char *format,...)
Container of Field-type object.
double set_iP_SU3_alt(Field_G &iP)
Alternative of set_iP_SU3() for checking set_iP_general_SU_N().
double set_iP(Field_G &iP)
Setting conjugate momenta and returns kinetic part of Hamiltonian.
double cmp(const int jin, const int site, const int jex) const
double set_iP_SU3(Field_G &iP)
Implementation for SU(3)
virtual void gauss_lex_global(Field &)
gaussian random number defined on global lattice.
double set_iP_general_SU_N(Field_G &iP)
Implementation for general value of Nc for SU(Nc) link variables.
Mat_SU_N get_generator(const int ica)
Bridge::VerboseLevel m_vl
void set_mat(const int site, const int mn, const Mat_SU_N &U)