diff options
Diffstat (limited to 'langevin.cpp')
-rw-r--r-- | langevin.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/langevin.cpp b/langevin.cpp index adb5212..a775774 100644 --- a/langevin.cpp +++ b/langevin.cpp @@ -5,6 +5,7 @@ #include <list> #include "Eigen/src/Eigenvalues/ComplexEigenSolver.h" +#include "Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h" #include "complex_normal.hpp" #include "p-spin.hpp" #include "dynamics.hpp" @@ -139,6 +140,16 @@ int main(int argc, char* argv[]) { Rng r; + Tensor<Real, p> ReJ = generateCouplings<Real, p>(N, std::normal_distribution<Real>(0, σ), r.engine()); + + std::normal_distribution<Real> Red(0, 1); + + Vector<Real> zMin = randomMinimum(ReJ, Red, r, ε); + auto [Hr, dHr, ddHr] = hamGradHess(ReJ, zMin); + Eigen::EigenSolver<Matrix<Real>> eigenS(ddHr - ((ddHr * zMin) * zMin.transpose()) / (Real)zMin.size()); + std::cout << eigenS.eigenvalues().transpose() << std::endl; + getchar(); + complex_normal_distribution<Real> d(0, 1, 0); ComplexTensor J = generateCouplings<Complex, p>(N, complex_normal_distribution<Real>(0, σ, κ), r.engine()); @@ -161,6 +172,7 @@ int main(int argc, char* argv[]) { zSaddleNext = findSaddle(J, z0, ε); Real saddleDistance = (zSaddleNext - zSaddle).norm(); if (saddleDistance / N > 1e-2) { + std::cout << saddleDistance << std::endl; foundSaddle = true; } } catch (std::exception& e) {} @@ -222,7 +234,7 @@ int main(int argc, char* argv[]) { */ Cord test(J, zSaddle, zSaddleNext, 5); - test.relaxNewton(J, 20, 1, 1e4); + test.relaxNewton(J, 25, 1, 1e4); std::cout << test.z0.transpose() << std::endl; std::cout << test.z1.transpose() << std::endl; |