summaryrefslogtreecommitdiff
path: root/examples/potts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/potts.cpp')
-rw-r--r--examples/potts.cpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/examples/potts.cpp b/examples/potts.cpp
index 24be2b3..c15de8d 100644
--- a/examples/potts.cpp
+++ b/examples/potts.cpp
@@ -5,26 +5,24 @@
#define WOLFF_USE_FINITE_STATES
#define WOLFF_FINITE_STATES_N WOLFF_POTTSQ
-
-#include <wolff/models/potts.hpp>
-#include <wolff/models/symmetric.hpp>
+#include <wolff_models/potts.hpp>
+#include <wolff_models/symmetric.hpp>
+#include <wolff.hpp>
#include "simple_measurement.hpp"
-#include <wolff.hpp>
-
using namespace wolff;
int main(int argc, char *argv[]) {
// set defaults
- N_t N = (N_t)1e4;
- D_t D = 2;
- L_t L = 128;
+ unsigned N = (unsigned)1e4;
+ unsigned D = 2;
+ unsigned L = 128;
double T = 2.26918531421;
vector_t<WOLFF_POTTSQ, double> H;
H.fill(0.0);
- q_t Hi = 0;
+ unsigned Hi = 0;
int opt;
@@ -32,7 +30,7 @@ int main(int argc, char *argv[]) {
while ((opt = getopt(argc, argv, "N:D:L:T:H:")) != -1) {
switch (opt) {
case 'N': // number of steps
- N = (N_t)atof(optarg);
+ N = (unsigned)atof(optarg);
break;
case 'D': // dimension
D = atoi(optarg);
@@ -67,30 +65,30 @@ int main(int argc, char *argv[]) {
};
// initialize the lattice
- graph G(D, L);
+ graph<> G(D, L);
// initialize the system
- system<symmetric_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>> S(G, T, Z, B);
+ system<symmetric_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>, graph<>> S(G, T, Z, B);
// initialize the random number generator
auto seed = std::chrono::high_resolution_clock::now().time_since_epoch().count();
std::mt19937 rng{seed};
// define function that generates self-inverse rotations
- std::function <symmetric_t<WOLFF_POTTSQ>(std::mt19937&, const system<symmetric_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>>&, v_t)> gen_r = [] (std::mt19937& r, const system<symmetric_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>>& S, v_t i0) -> symmetric_t<WOLFF_POTTSQ> {
+ std::function <symmetric_t<WOLFF_POTTSQ>(std::mt19937&, const system<symmetric_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>, graph<>>&, const graph<>::vertex&)> gen_r = [] (std::mt19937& r, const system<symmetric_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>, graph<>>& S, const graph<>::vertex& v) -> symmetric_t<WOLFF_POTTSQ> {
symmetric_t<WOLFF_POTTSQ> rot;
- std::uniform_int_distribution<q_t> dist(0, WOLFF_POTTSQ - 2);
- q_t j = dist(r);
- q_t swap_v;
- if (j < S.s[i0].x) {
+ std::uniform_int_distribution<unsigned> dist(0, WOLFF_POTTSQ - 2);
+ unsigned j = dist(r);
+ unsigned swap_v;
+ if (j < S.s[v.ind].x) {
swap_v = j;
} else {
swap_v = j + 1;
}
- rot[S.s[i0].x] = swap_v;
- rot[swap_v] = S.s[i0].x;
+ rot[S.s[v.ind].x] = swap_v;
+ rot[swap_v] = S.s[v.ind].x;
return rot;
};