From 646dcb5b35afb2f7dbcdae59fe7280d2de91546c Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Thu, 11 Nov 2021 17:27:21 +0100 Subject: Added executable files for mixed p-spin. --- mixedStokesFromMinima.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++++ mixedStokesFromSaddles.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 mixedStokesFromMinima.cpp create mode 100644 mixedStokesFromSaddles.cpp diff --git a/mixedStokesFromMinima.cpp b/mixedStokesFromMinima.cpp new file mode 100644 index 0000000..f6d2cba --- /dev/null +++ b/mixedStokesFromMinima.cpp @@ -0,0 +1,54 @@ +#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; +} diff --git a/mixedStokesFromSaddles.cpp b/mixedStokesFromSaddles.cpp new file mode 100644 index 0000000..2373146 --- /dev/null +++ b/mixedStokesFromSaddles.cpp @@ -0,0 +1,54 @@ +#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(), ε, δ, false, 1.0, 0.01); + } + + return 0; +} -- cgit v1.2.3-54-g00ecf