I'm getting weird autocorrelations when simulating an Ising model below the critical temperature So I'm simulating an Ising model using Monte Carlo and the Metropolis algorithm. After letting it reach equilibrium, I try to calculate the autocorrelation of the magnetization. As long as the system is above the critical temperature (about 2.4), I get the expect results. But when it's below the critical point, I get a weird autocorrelation result:

That straight line is completely bizarre. Now, at this point I am below the critical temperature, so it's supposed to be different anyway, but I'm not sure. It doesn't feel right.
Is this result expected?
 A: I would argue that this maybe due to the way you calculate your autocorrelation. An autocorrelation like that straight line is the result of a large square signal.
The Ising model has a phase transition at the critical temperature. Above it, it's disordered; below it, it becomes ordered, which means that the magnetization stops flipping back and forth. This was shown analytically by L. Osanger in his article Crystal Statistics. I. A Two-Dimensional Model with an Order-Disorder Transition.
Now, I assume that if you are using The Metropolis algorithm you are using a finite lattice. This just causes the transition to become less sharp (even if you use periodic boundary conditions), but it's still there, as can be seen in this graph which also uses the Metropolis algorithm, in a grid of 100 spins:

So you can see that it's not unexpected that below the critical temperature, all the spins align and you just get a constant magnetization. Now, a constant signal should really give you a constant autocorrelation, but if your integration is done over a finite domain, which I assume it is, you would get an slopping autocorrelation like that. This picture should help seeing why:

The value of the green area will decrease linearly with T.
