The 2D Ising model is a thoroughly studied model. One of the remarkable features of the model is that it predicts a hysteresis. However, I cannot seem to find the appropriate literature on this subject. I did do searches on Scopus to find relevant articles. I also found the book "The 2D Ising model" by Barry M. McCoy and Tai Tsun Wu. This is a large book dedicated to the 2D Ising model and has a few paragraphs on hysteresis. One of these shows the expected hysteresis: a "smooth" flip from the -1 to 1 normalized magnetization state.
However, this is only for the first row of the lattice. This is not what I am searching. Is there an analytical expression for the whole net magnetization of the whole lattice, in an external magnetic field? The field is swept from some negative value to some positive value, and then from positive back to negative, while keeping the temperature constant.
A pointer to a numerical solution or to a simulation is fine too.
EDIT:
Background
I am using the Metropolis algorithm to simulate an Ising lattice. See the following figure generated by the model:
Apologies for the weird legend. What you see: the model starts at T=0, then is swept in linear steps to T=2 in 100 steps. Each step sweeps 100 times over the lattice. The lattice is 20x20 and uses periodic boundary conditions. I'm using J = 1 and k = 1, where J is the coupling constant between the spins. This first step is done to generate an appropriate "initial condition" before the field is turned on.
Then the field is swept from -0.1 to 1, in 1000 steps, linearly. The same is done but now backwards.
As you can see, there is an hysteresis as expected. However, I would expect the hysteresis to be "smooth", but it appears to be a step function (or "square" hysteresis).
I tried zooming in on the hysteresis region, but it either moves or gets even sharper (the intermediate points, which appear to be artifacts, are deleted).
I'm therefore wondering wether this hysteresis is what I should see, or that I'm doing something wrong in my simulation. Maybe this outcome is a wrong prediction when using the Metropolis algorithm?



