summaryrefslogtreecommitdiff
path: root/examples/clock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/clock.cpp')
-rw-r--r--examples/clock.cpp30
1 files changed, 14 insertions, 16 deletions
diff --git a/examples/clock.cpp b/examples/clock.cpp
index 0cba8f6..3403f23 100644
--- a/examples/clock.cpp
+++ b/examples/clock.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/dihedral.hpp>
+#include <wolff_models/potts.hpp>
+#include <wolff_models/dihedral.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<2, 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);
@@ -63,22 +61,22 @@ int main(int argc, char *argv[]) {
};
// initialize the lattice
- graph G(D, L);
+ graph<> G(D, L);
// initialize the system
- system<dihedral_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>> S(G, T, Z, B);
+ system<dihedral_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 <dihedral_t<WOLFF_POTTSQ>(std::mt19937&, const system<dihedral_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>>&, v_t)> gen_r = [] (std::mt19937& r, const system<dihedral_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>>& S, v_t i0) -> dihedral_t<WOLFF_POTTSQ> {
+ std::function <dihedral_t<WOLFF_POTTSQ>(std::mt19937&, const system<dihedral_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>, graph<>>&, const graph<>::vertex&)> gen_r = [] (std::mt19937& r, const system<dihedral_t<WOLFF_POTTSQ>, potts_t<WOLFF_POTTSQ>, graph<>>& S, const graph<>::vertex& v) -> dihedral_t<WOLFF_POTTSQ> {
dihedral_t<WOLFF_POTTSQ> rot;
rot.is_reflection = true;
- std::uniform_int_distribution<q_t> dist(0, WOLFF_POTTSQ - 2);
- q_t x = dist(r);
- rot.x = (2 * S.s[i0].x + x + 1) % WOLFF_POTTSQ;
+ std::uniform_int_distribution<unsigned> dist(0, WOLFF_POTTSQ - 2);
+ unsigned x = dist(r);
+ rot.x = (2 * S.s[v.ind].x + x + 1) % WOLFF_POTTSQ;
return rot;
};