What is the most efficient way to simulate steady state configurations of the Ising model? I am just interested in having a large set of random steady state configurations of the 1D Ising model (with homogeneous coupling constants). A few ideas came to mind:
- Brute force sampling. Since the Ising model is exactly solvable in 1D and 2D, one has exact expressions for the probabilities of each state. However, random sampling over a set of $2^N$ will likely cause memory problems for small $N$ already.
- Monte Carlo dynamics. One could run the usual Monte Carlo algorithms (e.g. Glauber dynamics) on random initial states and wait until the system converges to thermal equilibrium. However, this seems inefficient when you are not interested in the dynamics and only want steady state configurations.
- Using the density of states. One could also first randomly sample the energy of the system, according to $P(E) \sim N(E) \exp(-\beta E)$, where $N(E)$ is the density of states, which is computable (at least numerically). Then one generates a random configuration with this energy, e.g. using a spin flip algorithm where one flips single spins to increase/decrease the energy until it matches the target energy. But I'm not sure if the configurations obtained this way statistically follow the Boltzmann distribution.
Note: in 1D there is also an exact expression for the Ising density of states, $g(E(k)) = 2 \binom{N-1}{k}$ with $E(k) = -N + 2k + 1$. See this other question: Ising model density of states.
Any ideas on what is the best way to approach this?