Kadanoff block-spin renormalization group flow#

Real-space renormalization group (RG) transformations reveal why critical phenomena are universal. Starting from an Ising configuration (\(H = -J \sum_{\langle i,j \rangle} s_i s_j\), \(s_i = \pm 1\)) equilibrated at temperature \(T\), Kadanoff’s construction repeatedly replaces each non-overlapping \(2\times2\) block of spins by a single effective spin via majority rule,

\[s'_{I} = \mathrm{sign}\!\left(\sum_{i \,\in\, \text{block } I} s_i\right),\]

with an exact tie broken by a fair coin flip – mapping the lattice onto a smaller one that behaves as if sampled at some effective temperature \(T'\). Iterating this map drives almost any starting configuration to one of three fixed points: a fully ordered lattice (\(T \ll T_C\)), a fully disordered one (\(T \gg T_C\)), or – exactly at \(T_C\) – a self-similar configuration that looks statistically the same at every coarse-graining step, tracked here via the order parameter \(|\langle s \rangle|\), the visual and quantitative signature of scale invariance at a critical point.

import matplotlib.pyplot as plt

from physicskit.statphys.chapters.ising_lattice import Ising2D
from physicskit.statphys.chapters.renormalization import BlockSpinRG
from physicskit.statphys.visualizers.rg_render import plot_rg_flow

T_C = Ising2D().T_C

RG flow from three starting temperatures#

for T, label in [(0.5 * T_C, "T << T_C"), (T_C, "T = T_C"), (2.0 * T_C, "T >> T_C")]:
    rg = BlockSpinRG(L=64, T=T, J=1.0, n_equil_sweeps=400, seed=0)
    grids = rg.iterate(n_steps=4)
    orders = [rg.order_parameter(g) for g in grids]

    axes = plot_rg_flow(grids, titles=[f"L={g.shape[0]}\n|m|={m:.2f}" for g, m in zip(grids, orders)])
    plt.gcf().suptitle(f"Block-spin RG flow, {label} = {T:.2f}")
    plt.tight_layout()

plt.show()
  • Block-spin RG flow, T << T_C = 1.13, L=64 |m|=1.00, L=32 |m|=1.00, L=16 |m|=1.00, L=8 |m|=1.00, L=4 |m|=1.00
  • Block-spin RG flow, T = T_C = 2.27, L=64 |m|=0.72, L=32 |m|=0.80, L=16 |m|=0.88, L=8 |m|=0.88, L=4 |m|=0.88
  • Block-spin RG flow, T >> T_C = 4.54, L=64 |m|=0.00, L=32 |m|=0.00, L=16 |m|=0.12, L=8 |m|=0.19, L=4 |m|=0.25

Total running time of the script: (0 minutes 0.150 seconds)

Gallery generated by Sphinx-Gallery