summaryrefslogtreecommitdiff
path: root/lib/cluster_finite.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cluster_finite.c')
-rw-r--r--lib/cluster_finite.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/cluster_finite.c b/lib/cluster_finite.c
index 71396e0..9392cf8 100644
--- a/lib/cluster_finite.c
+++ b/lib/cluster_finite.c
@@ -1,8 +1,8 @@
#include "cluster_finite.h"
-v_t flip_cluster_finite(state_finite_t *s, v_t v0, q_t rot_ind, gsl_rng *r) {
- q_t *rot = s->transformations + s->q * rot_ind;
+v_t flip_cluster_finite(state_finite_t *s, v_t v0, R_t rot_ind, gsl_rng *r) {
+ q_t *rot = s->transformations + s->q * s->involutions[rot_ind];
q_t *R_inv = symmetric_invert(s->q, s->R);
v_t nv = 0;
@@ -63,10 +63,10 @@ v_t flip_cluster_finite(state_finite_t *s, v_t v0, q_t rot_ind, gsl_rng *r) {
s->M[rot_s_new]++;
} else {
- q_t diff_old = (s_old + s->q - sn) % s->q;
- q_t diff_new = (s_new + s->q - sn) % s->q;
+ q_t diff_old = s->bond_with_zero_type[s->transformations[s->q * s->transform_site_to_zero[sn] + s_old]];
+ q_t diff_new = s->bond_with_zero_type[s->transformations[s->q * s->transform_site_to_zero[sn] + s_new]];
- prob = s->J_probs[diff_new * s->q + diff_old];
+ prob = s->J_probs[diff_new * s->n_bond_types + diff_old];
s->B[diff_old]--;
s->B[diff_new]++;