#include #include #include #include "collectStokesData.hpp" #include "pcg-cpp/include/pcg_random.hpp" #include "randutils/randutils.hpp" #include "unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h" #define PSPIN_P 3 const int p = PSPIN_P; // polynomial degree of Hamiltonian using Rng = randutils::random_generator; int main(int argc, char* argv[]) { // model parameters unsigned N = 10; // number of spins // simulation parameters Real ε = 1e-15; Real δ = 1; unsigned n = 10; int opt; while ((opt = getopt(argc, argv, "N:e:d:n:")) != -1) { switch (opt) { case 'N': N = (unsigned)atof(optarg); break; case 'e': ε = atof(optarg); break; case 'd': δ = atof(optarg); break; case 'n': n = atof(optarg); break; default: exit(1); } } Rng r; for (unsigned i = 0; i < n; i++) { auto tag = std::chrono::high_resolution_clock::now(); std::ofstream output("stokes_" + std::to_string(tag.time_since_epoch().count()) + ".dat"); collectStokesData<2, 4>(output, N, r.engine(), ε, δ, true, 1.0, 0.01); } return 0; }