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
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))