diff options
-rw-r--r-- | mixedStokesFromMinima.cpp | 54 | ||||
-rw-r--r-- | mixedStokesFromSaddles.cpp | 54 |
2 files changed, 108 insertions, 0 deletions
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 <getopt.h> +#include <chrono> +#include <fstream> + +#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<pcg32>; + +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 <getopt.h> +#include <chrono> +#include <fstream> + +#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<pcg32>; + +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; +} |