16 #ifdef USE_PARAMETERS_FACTORY
33 #ifdef USE_PARAMETERS_FACTORY
48 const string str_vlevel = params.
get_string(
"verbose_level");
53 double c_plaq, c_rect;
93 static const double PI = 4.0 * atan(1.0);
94 static const double PI2 = PI * PI;
97 std::vector<Field_G> Fmunu_1x1(6), Fmunu_1x2(6);
103 for (
int mu = 0; mu < Ndim; ++mu) {
104 for (
int nu = mu + 1; nu < Ndim; ++nu) {
140 Q_1x1 / (32.0 * PI2),
141 Q_1x2 / (2.0 * (32.0 * PI2)));
152 const int mu,
const int nu,
Field_G& U)
158 Field_G Cup(Nvol, 1), Cdn(Nvol, 1);
160 Field_G v(Nvol, 1), v2(Nvol, 1);
168 Cup = staple.
upper(U, mu, nu);
174 Cdn = staple.
lower(U, mu, nu);
221 const int mu,
const int nu,
Field_G& U)
227 Field_G Cup1(Nvol, 1), Cup2(Nvol, 1);
228 Field_G Cdn1(Nvol, 1), Cdn2(Nvol, 1);
229 Field_G Umu(Nvol, 1), Unu(Nvol, 1);
230 Field_G Umu_nu(Nvol, 1), Unu_mu(Nvol, 1);
232 Field_G v(Nvol, 1), w(Nvol, 1), c(Nvol, 1);
239 Cup1 = staple.
upper(U, mu, nu);
245 Cup2 = staple.
upper(U, nu, mu);
251 Cdn1 = staple.
lower(U, mu, nu);
257 Cdn2 = staple.
lower(U, nu, mu);
459 for (
int site = 0; site < Nvol; ++site) {
460 Q_topo +=
ReTr(Fmunu_1.
mat(site) * Fmunu_2.
mat(site));
void Register_string(const string &, const string &)
void mult_Field_Gdn(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
static const std::string class_name
Field_G upper(const Field_G &, const int mu, const int nu)
constructs upper staple in mu-nu plane (wrapping void version).
void general(const char *format,...)
double measure(Field_G &U)
main function to measure Topological Charge.
Parameters_TopologicalCharge()
void construct_Fmunu_1x2(Field_G &Fmunu, int mu, int nu, Field_G &U)
void construct_Fmunu_1x1(Field_G &Fmunu, int mu, int nu, Field_G &U)
void mult_Field_Gdd(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
double contract_epsilon_tensor(Field_G &Fmunu_1, Field_G &Fmunu_2)
void ah_Field_G(Field_G &w, const int ex)
void multadd_Field_Gdn(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2, const double ff)
void mult_Field_Gnd(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
void mult_Field_Gnn(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
void backward(Field &, const Field &, const int mu)
void paranoiac(const char *format,...)
void multadd_Field_Gnd(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2, const double ff)
void crucial(const char *format,...)
static bool Register(const std::string &realm, const creator_callback &cb)
Bridge::VerboseLevel m_vl
Field_G lower(const Field_G &, const int mu, const int nu)
constructs lower staple in mu-nu plane (wrapping void version).
virtual void set_parameters(const Parameters ¶ms)
setting parameters.
static int reduce_sum(int count, double *recv_buf, double *send_buf, int pattern=0)
make a global sum of an array of double over the communicator. pattern specifies the dimensions to be...
void Register_double(const string &, const double)
void setpart_ex(int ex, const Field &w, int exw)
int fetch_double(const string &key, double &val) const
string get_string(const string &key) const
Mat_SU_N mat(const int site, const int mn=0) const
static VerboseLevel set_verbose_level(const std::string &str)
double ReTr(const Mat_SU_N &m)
void forward(Field &, const Field &, const int mu)