Statistical Mechanics & Ferromagnetism

Ising Model

Simulate Ernst Ising and Wilhelm Lenz's 1925 2D lattice model of ferromagnetism using the Metropolis Monte Carlo algorithm. Below Lars Onsager's exact Curie temperature $T_c = 2.269 J/k_B$, individual spins spontaneously align into macroscopic magnetic domains.

Temperature T 1.80 J/kB (Ferromagnetic)
Magnetization |M| 0.88
Curie Temp T_c 2.269 J/kB

Lattice Controls

Visual Overlay

Controls

Ising Model Hamiltonian & Metropolis Acceptance

Lattice Hamiltonian: H = -J ∑ s_i s_j - h ∑ s_i (s_i = ±1)
Metropolis Transition Probability: P(s_i → -s_i) = min(1, exp(-ΔE / k_B T))
Onsager Exact Curie Temperature: T_c = 2 J / (k_B ln(1 + √2)) ≈ 2.269 J / k_B
Developer Reference

Core Algorithm & Standalone Script

// 2D Ising model Metropolis Monte Carlo solver
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
// P(flip) = min(1, exp(-deltaE / T))