26 const string str_vlevel = params.
get_string(
"verbose_level");
34 err += params.
fetch_int(
"spatial_correlator_size", Nspc_size);
35 err += params.
fetch_int(
"number_of_correlator_type", Ntype);
106 const int Ndim_spc = Ndim - 1;
117 assert(m_Ntype_max >= 6);
156 const int Nvol_spc = Nx * Ny * Nz;
164 for (
int site = 0; site < Nvol_spc; ++site) {
166 P.
mat(utmp, site, 0);
171 re_tr /= (double(Nc));
172 im_tr /= (double(Nc));
177 re_ploop /= double(Lvol_spc * Npet);
178 im_ploop /= double(Lvol_spc * Npet);
182 std::ofstream log_file;
189 vout.
general(
m_vl,
"PolyakovLoop(Re,Im) = %20.16e %20.16e\n", re_ploop, im_ploop);
197 const dcomplex ploop = cmplx(re_ploop, im_ploop);
215 const int Nvol = U.
nvol();
217 assert(Nvol == Nx * Ny * Nz * Nt);
219 const int Nvol_spc = P.
nvol();
220 assert(Nvol_spc == Nx * Ny * Nz);
230 for (
int z = 0; z < Nz; ++z) {
231 for (
int y = 0; y < Ny; ++y) {
232 for (
int x = 0; x < Nx; ++x) {
233 int site = index.
site(x, y, z, t);
234 int site2 = index_spc.
site(x, y, z, 0);
237 Ut.
mat(utmp1, site, 0);
243 for (
int t = 1; t < Nt; ++t) {
244 for (
int z = 0; z < Nz; ++z) {
245 for (
int y = 0; y < Ny; ++y) {
246 for (
int x = 0; x < Nx; ++x) {
247 int site = index.
site(x, y, z, t);
248 int site2 = index_spc.
site(x, y, z, 0);
251 Ut.
mat(utmp1, site, 0);
254 P.
mat(utmp2, site2, 0);
268 const int size_cp = P.
nin() * Nvol_spc;
270 Field_G Pcp1(Nvol_spc, 1), Pcp2(Nvol_spc, 1);
272 for (
int ipe_t = 1; ipe_t < NPE_t; ++ipe_t) {
274 Pcp1.setpart_ex(0, P, 0);
276 Pcp1.setpart_ex(0, Pcp2, 0);
virtual void set_parameters(const Parameters ¶ms)
setting parameters: only for Polyakov loop correlators.
static int npe(const int dir)
logical grid extent
const double * ptr(const int jin, const int site, const int jex) const
int site(const int &x, const int &y, const int &z, const int &t) const
void general(const char *format,...)
void init(const std::string &filename)
void calc_ploop(Field_G &P, const Field_G &U)
Polyakov loop measurement.
std::vector< int > m_Nmax
int m_Nx_ext
size of extended gauge config.
Bridge::VerboseLevel m_vl
int fetch_int(const string &key, int &value) const
double ImTr(const Mat_SU_N &m)
static int exchange(int count, double *recv_buf, double *send_buf, int idir, int ipm, int tag)
receive array of double from upstream specified by idir and ipm, and send array to downstream...
int m_Nvol_ext
volume of extended gauge config.
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 crucial(const char *format,...)
int m_Ntype_max
internal data members
void init()
initial setup independent of parameters.
std::string m_filename_output
static const std::string class_name
std::ostream & getStream()
int m_Nspc_size
parameters set by user
int non_negative(const int v)
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...
int m_Nt_ext
size of extended gauge config.
int m_Ntype
number of measured loop-type
void setpart_ex(int ex, const Field &w, int exw)
string get_string(const string &key) const
void set_mat(const int site, const int mn, const Mat_SU_N &U)
std::vector< unitvec > m_Nunit
int m_Ny_ext
size of extended gauge config.
Mat_SU_N mat(const int site, const int mn=0) const
int m_Nz_ext
size of extended gauge config.
void mult_nn(const Mat_SU_N &u1, const Mat_SU_N &u2)
static VerboseLevel set_verbose_level(const std::string &str)
double ReTr(const Mat_SU_N &m)
dcomplex measure_ploop(const Field_G &U)
Polyakov loop measurement.