[Physics] Measuring correlation lengths of 2D Ising model by Monte Carlo simulation

computational physicsising-modelstatistical mechanics

I want to measure cluster size and cluster number at different temperatures below and above critical temperature in 2d Ising model by Monte Carlo method. In other words, I must measure correlation length (typical cluster size) at different temperatures, but I do not know how to start to measure correlation length. Would you please help me ?

Best Answer

First off, the critical temperature is lattice size dependent. The Onsager solution only applies in the thermodynamic limit of infinite grid size.

For a finite grid then, you'll want to sample temperatures in the range $[1,3]$ to pinpoint where the phase transition occurs. After picking a random temperature, run an Ising grid from random initial conditions for enough time steps that the system thermalizes. You'll have to figure out exactly how to do that, but the basic idea is that the system needs to reach the minimum of its free energy to be in equilibrium before you can measure the correlation length.

Once the system is in equilibrium, measure the two point correlation function. You can do this either via convolution, which is numerically expensive, or via Fourier transforms and the relationship between the correlation function and the power spectrum, which is less numerically expensive.

Once you have the two point correlation function, we know that the functional form of it is described by (in 2 dimensions): $$ C_2(r) \propto \frac{e^{-r/\xi}}{\left(\frac{r}{\xi}\right)^{\eta}} $$ where $\eta$ is a critical exponent of the Ising universality class, and $\xi$ is the correlation length. Note that this form reduces to exponential behavior when the correlation length is small, and power law behavior when the correlation length is big. You can fit your data to the above functional form and extract both the critical exponent and the correlation length.

Hope that helps.

Related Question