From f2639be5d5006079868f69b0c7105a066166bec6 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Wed, 21 Jun 2017 17:29:10 -0400 Subject: fixed bug related to counting number of full cluster flips, and added support for choosing other lattices --- lib/wolff_tools.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/wolff_tools.c') diff --git a/lib/wolff_tools.c b/lib/wolff_tools.c index d361344..016e19b 100644 --- a/lib/wolff_tools.c +++ b/lib/wolff_tools.c @@ -79,7 +79,6 @@ cluster_t *flip_cluster(const graph_t *g, const double *ps, double H, bool *x, g // initiate the data structure for returning flip information c = (cluster_t *)calloc(1, sizeof(cluster_t)); c->nv = 0; - c->dH = 0; n_h_bonds = 0; n_bonds = 0; @@ -152,7 +151,7 @@ double *get_bond_probs(double T, double H, ising_state_t *s) { return ps; } -int32_t wolff_step(double T, double H, ising_state_t *s, gsl_rng *r, double *ps) { +uint32_t wolff_step(double T, double H, ising_state_t *s, gsl_rng *r, double *ps) { if (r == NULL) { r = gsl_rng_alloc(gsl_rng_mt19937); gsl_rng_set(r, jst_rand_seed()); @@ -167,8 +166,10 @@ int32_t wolff_step(double T, double H, ising_state_t *s, gsl_rng *r, double *ps) s->M += -2 * c->dM; s->H += 2 * c->dH; + uint32_t n_flips = c->nv; + free(c); - return c->nv; + return n_flips; } -- cgit v1.2.3-70-g09d2