diff options
-rw-r--r-- | lib/wolff.h | 1 | ||||
-rw-r--r-- | lib/wolff_tools.c | 5 |
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/wolff.h b/lib/wolff.h index 84b3d22..6b9cceb 100644 --- a/lib/wolff.h +++ b/lib/wolff.h @@ -33,6 +33,7 @@ typedef struct { typedef struct { uint32_t nv; + uint32_t nt; int32_t dJb; int32_t dHb; bool hit_ghost; diff --git a/lib/wolff_tools.c b/lib/wolff_tools.c index bab0908..629da4e 100644 --- a/lib/wolff_tools.c +++ b/lib/wolff_tools.c @@ -113,6 +113,7 @@ cluster_t *flip_cluster(const graph_t *g, const double *ps, bool *x, bool stop_o if (x[vn] == x0) { // if the neighboring site matches the flipping cluster... (*bond_counter)++; + c->nt++; if (gsl_rng_uniform(r) < prob) { // and with probability ps[e]... if (is_ext && stop_on_ghost) { @@ -192,7 +193,7 @@ uint32_t wolff_step(double T, double H, ising_state_t *s, sim_t sim, gsl_rng *r, cluster_t *c = flip_cluster(s->g, ps, s->spins, false, r); s->M += - sign(H) * 2 * c->dHb; s->H += 2 * (c->dJb + sign (H) * H * c->dHb); - n_flips = c->nv; + n_flips = c->nt; free(c); } @@ -213,7 +214,7 @@ uint32_t wolff_step(double T, double H, ising_state_t *s, sim_t sim, gsl_rng *r, s->H += 2 * (c->dJb + sign (H) * H * c->dHb); } - n_flips = c->nv; + n_flips = c->nt; free(c); } |