diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/wolff.h | 3 | ||||
-rw-r--r-- | lib/wolff_tools.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/wolff.h b/lib/wolff.h index 29286ba..18ae6dd 100644 --- a/lib/wolff.h +++ b/lib/wolff.h @@ -42,7 +42,8 @@ typedef struct { double *spins; double T; double (*J)(double); - double (*H)(double *); + double (*H)(q_t, double *, double *); + double *H_info; double *R; double E; double *M; diff --git a/lib/wolff_tools.c b/lib/wolff_tools.c index e63623c..7a52546 100644 --- a/lib/wolff_tools.c +++ b/lib/wolff_tools.c @@ -131,7 +131,7 @@ v_t flip_cluster_vector(vector_state_t *s, v_t v0, double *rot, gsl_rng *r) { rs_old = vector_rotate_inverse(s->n, s->R, sn); rs_new = vector_rotate_inverse(s->n, R_tmp, sn); } - double dE = s->H(rs_old) - s->H(rs_new); + double dE = s->H(s->n, s->H_info, rs_old) - s->H(s->n, s->H_info, rs_new); prob = 1.0 - exp(-dE / s->T); vector_subtract(s->n, s->M, rs_old); vector_add(s->n, s->M, rs_new); |