summaryrefslogtreecommitdiff
path: root/lib/include/wolff/measurement.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/include/wolff/measurement.hpp')
-rw-r--r--lib/include/wolff/measurement.hpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/include/wolff/measurement.hpp b/lib/include/wolff/measurement.hpp
new file mode 100644
index 0000000..a6a5f79
--- /dev/null
+++ b/lib/include/wolff/measurement.hpp
@@ -0,0 +1,24 @@
+
+#ifndef WOLFF_MEASUREMENTS
+#define WOLFF_MEASUREMENTS
+
+#include "system.hpp"
+
+template <class R_t, class X_t>
+class wolff_measurement {
+ public:
+ virtual void pre_cluster(N_t, N_t, const wolff_system<R_t, X_t>&, v_t, const R_t&) = 0;
+
+ virtual void plain_bond_visited(const wolff_system<R_t, X_t>&, v_t, const X_t&, v_t, double) = 0;
+ virtual void plain_site_transformed(const wolff_system<R_t, X_t>&, v_t, const X_t&) = 0;
+
+#ifndef WOLFF_NO_FIELD
+ virtual void ghost_bond_visited(const wolff_system<R_t, X_t>&, v_t, const X_t&, const X_t&, double) = 0;
+ virtual void ghost_site_transformed(const wolff_system<R_t, X_t>&, const R_t&) = 0;
+#endif
+
+ virtual void post_cluster(N_t, N_t, const wolff_system<R_t, X_t>&) = 0;
+};
+
+#endif
+