diff options
Diffstat (limited to 'dimers_torus.cpp')
-rw-r--r-- | dimers_torus.cpp | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/dimers_torus.cpp b/dimers_torus.cpp index ec7c73a..4b44a83 100644 --- a/dimers_torus.cpp +++ b/dimers_torus.cpp @@ -58,22 +58,10 @@ int main(int argc, char* argv[]) { } auto zSingle = zSpheresTorus<D>(L, a, k); + auto Z = zDimers(zSingle); - std::function<double(const Spin<double, D, Dimer<double, D>>&, - const Spin<double, D, Dimer<double, D>>&)> - Z = [L, zSingle, a, k](const Spin<double, D, Dimer<double, D>>& s1, - const Spin<double, D, Dimer<double, D>>& s2) -> double { - Spin<double, D, Radius> s11 = {.x = s1.x + s1.s.relativePosition, .s = s1.s.radius}; - Spin<double, D, Radius> s12 = {.x = s1.x - s1.s.relativePosition, .s = s1.s.radius}; - Spin<double, D, Radius> s21 = {.x = s2.x + s2.s.relativePosition, .s = s2.s.radius}; - Spin<double, D, Radius> s22 = {.x = s2.x - s2.s.relativePosition, .s = s2.s.radius}; - - return zSingle(s11, s21) + zSingle(s12, s21) + zSingle(s11, s22) + zSingle(s12, s22); - }; - - std::function<double(Spin<double, D, Dimer<double, D>>)> B = [L, H](Spin<double, D, Dimer<double, D>> s) -> double { - return H * s.x(1); - }; + std::function<double(Spin<double, D, Dimer<double, D>>)> B = + [L, H](Spin<double, D, Dimer<double, D>> s) -> double { return H * s.x(1); }; auto g1 = uniformGenTorus<D, Dimer<double, D>>(L); @@ -97,18 +85,16 @@ int main(int argc, char* argv[]) { sphere.wolff(T, {g1}, A, N); - /* std::ofstream snapfile; - snapfile.open("sphere_snap.dat"); + snapfile.open("dimers_torus_snap.dat"); - for (Spin<double, D, double>* s : sphere.s) { - Spin<double, D, double> rs = sphere.s0.inverse().act(*s); - snapfile << rs.s << " " << rs.x.transpose() << "\n"; + for (Spin<double, D, Dimer<double, D>>* s : sphere.s) { + Spin<double, D, Dimer<double, D>> rs = sphere.s0.inverse().act(*s); + snapfile << rs.s.radius << " " << rs.x.transpose() << " " << rs.s.relativePosition.transpose() << "\n"; delete s; } snapfile.close(); - */ return 0; } |