Ising model
Does a 2-D magnet have a sharp critical temperature where it loses its magnetisation?

▶ Run the simulationSee the measured result
Units: J/k_B — Onsager 1944, Tc = 2/ln(1+√2), exact closed form
How the lab tests it
Heat a lattice of spins (Metropolis Monte-Carlo), measure the magnetisation ⟨|M|⟩ and the susceptibility χ at each temperature, and locate Tc at the χ peak.
What it checks
Onsager's exact critical temperature Tc = 2/ln(1+√2) ≈ 2.2692
Ising critical temperature & spontaneous magnetisation calculator
The first model anybody solved that actually has a phase transition, priced rather than quoted. Onsager's 1944 answer is a single number - a square lattice of spins that only want to agree with their four neighbours loses its magnetisation at kTc/J = 2/ln(1+√2) = 2.269 - and it mattered because before it nobody could point to a smooth microscopic law that provably produces non-analytic behaviour. This page computes that number instead of storing it, and computes it three different ways that disagree in the last two digits, which turns out to be the honest part. The critical coupling is the fixed point of the lattice's own duality: Kramers and Wannier showed in 1941 that the square lattice maps to itself under sinh(2K)sinh(2K*) = 1, so a single transition can only sit where the map holds still, at sinh(2Kc) = 1, giving 2Kc = arcsinh(1) = ln(1+√2) - a critical point located exactly by a symmetry, three years before the model was solved, and with no free energy computed at all. Inverting that needs a logarithm, and every logarithm on this page is built here out of one compensated artanh series rather than called: ln x = 2 artanh((x−1)/(x+1)), which for these three lattices needs no range reduction whatsoever, because the arguments come out 1/(1+√2), exactly 1/2, and 1/√3. The spelling of that argument is what decides the last digits. Written the textbook way as √2−1 the subtraction is exact and still throws away the bit that √2's own half-ulp was protecting, and Tc lands two ulp low; written as its conjugate 1/(1+√2) it lands one ulp low; carried with the surd's second limb it lands on the correctly rounded double of the true 2.26918531421302196811, and the page shows all three side by side so the claim is checkable rather than asserted. Yang's 1952 spontaneous magnetisation gets the same treatment for a sharper reason: M = (1 − sinh⁻⁴(2K))^(1/8) is a difference of two quantities that both approach 1 as the temperature climbs, and the place they meet IS Tc, so the textbook grouping loses its figures exactly where the physics is. Factored as (s−1)(s+1)(s²+1)/s⁴ the zero is explicit and s−1 is exact by Sterbenz's lemma throughout the critical region, and the eighth root is three correctly-rounded square roots rather than a power. The page then says how many of the printed figures actually survive, because near Tc the answer is limited by the conditioning of asking for M at a typed temperature and no grouping recovers digits the input never carried. The one-dimensional chain is here as the control that makes the two-dimensional result mean something, and its correlation length is the page's sharpest numerical lesson: every reference writes ξ = −1/ln(tanh(J/T)), tanh rounds to exactly 1.0 by J/T ≈ 19.1, and that spelling then returns −Infinity where the truth is 1.18e17. The identity tanh K = (1−w)/(1+w) with w = e^(−2K) turns it into ξ = 1/(2 artanh w), which never goes near 1 and never cancels. Four things this page will not do. It will not evaluate Yang's square-lattice formula on the triangular or honeycomb lattice, where the exponent is shared but the function is not. It will not apply self-duality off the square lattice, which is not self-dual. It will not claim to build its own exponential, because a hand-built one measured worse than the engine's and saying so is cheaper than pretending. And it will not correct a single number this lab recovered: the last direction scores the simulation's 2.267229 against the closed form and reports the module's disclosed finite-size bias, it does not revise it.
sinh(2J/kTc) = 1 ⇒ Tc = 2J/ln(1+√2) · triangular 4J/ln 3 · honeycomb 2J/ln(2+√3) · M = (1 − sinh⁻⁴(2J/kT))^(1/8) · ξ₁ᴅ = 1/(2 artanh e^(−2J/kT)) · sinh(2K)·sinh(2K*) = 1