summaryrefslogtreecommitdiff
path: root/src/wolff_heisenberg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wolff_heisenberg.cpp')
-rw-r--r--src/wolff_heisenberg.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/wolff_heisenberg.cpp b/src/wolff_heisenberg.cpp
index f38fa96..5403b49 100644
--- a/src/wolff_heisenberg.cpp
+++ b/src/wolff_heisenberg.cpp
@@ -4,6 +4,8 @@
#include <correlation.h>
#include <wolff.h>
+typedef state_t <orthogonal_t <3, double>, vector_t <3, double>> sim_t;
+
int main(int argc, char *argv[]) {
count_t N = (count_t)1e7;
@@ -61,7 +63,7 @@ int main(int argc, char *argv[]) {
timestamp = spec.tv_sec*1000000000LL + spec.tv_nsec;
}
- std::function <orthogonal_t <3, double>(gsl_rng *, const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)> gen_R;
+ std::function <orthogonal_t <3, double>(gsl_rng *, const sim_t *)> gen_R;
const char *pert_type;
@@ -108,20 +110,20 @@ int main(int argc, char *argv[]) {
free(filename_S);
free(filename_X);
- std::function <void(const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)> *measurements = (std::function <void(const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)> *)malloc(4 * sizeof(std::function <void(const state_t <orthogonal_t <3, double>, vector_t <3, double>> *)>));
+ std::function <void(const sim_t *)> *measurements = (std::function <void(const sim_t *)> *)malloc(4 * sizeof(std::function <void(const sim_t *)>));
- measurements[0] = [&](const state_t <orthogonal_t <3, double>, vector_t <3, double>> *s) {
+ measurements[0] = [&](const sim_t *s) {
float smaller_E = (float)s->E;
fwrite(&smaller_E, sizeof(float), 1, outfile_E);
};
- measurements[1] = [&](const state_t <orthogonal_t <3, double>, vector_t <3, double>> *s) {
+ measurements[1] = [&](const sim_t *s) {
float smaller_X = (float)correlation_length(s);
fwrite(&smaller_X, sizeof(float), 1, outfile_X);
};
- measurements[2] = [&](const state_t <orthogonal_t <3, double>, vector_t <3, double>> *s) {
+ measurements[2] = [&](const sim_t *s) {
write_magnetization(s->M, outfile_M);
};
- measurements[3] = [&](const state_t <orthogonal_t <3, double>, vector_t <3, double>> *s) {
+ measurements[3] = [&](const sim_t *s) {
fwrite(&(s->last_cluster_size), sizeof(uint32_t), 1, outfile_S);
};