A good thermoelectric wants to conduct electricity like a crystal but heat like a glass (Slack's "phonon-glass, electron-crystal" idea). This 2D engine actually simulates that decoupling instead of assuming it: phonons and electrons are independent random-walking particles that each get their own scattering probability per step, derived live from their own mean free path — so the on-screen bounce rate you see is the number the κ and ZT readouts are computed from, not a decorative overlay.
Matthiessen's rule (combine scattering mechanisms):
1/Λ = 1/Λ_boundary + 1/Λ_rattler + 1/Λ_Umklapp(T)
Per-step scattering probability from the walked path:
P_scatter = 1 − exp(−v·dt / Λ)
Kinetic theory of heat conduction:
κ_l = (1/3)·C_v·v_s·Λ
Wiedemann-Franz law (electronic heat vs. charge):
κ_e = L·σ·T (L = 2.44×10⁻⁸ WΩ/K²)
Pisarenko relation (doping trade-off):
S ∝ n^(-2/3) σ = n·e·μ
Figure of merit:
ZT = S²σT / (κ_l + κ_e)
- Grain size — sets the boundary mean free path Λ_boundary directly; drag it down and watch phonons (orange) bounce off the vertical grain-boundary lines far more than electrons (cyan) do.
- Rattler atoms — heavy guest ions vibrating loosely in cage voids (the mechanism behind filled skutterudites like La-CoSb₃, ZT≈1.7) resonantly scatter phonons without touching the electron gas.
- Temperature — raises intrinsic Umklapp (phonon-phonon) scattering, which shortens Λ even with no nanostructuring at all.
- Carrier density — the Pisarenko trade-off: more free carriers raise electrical conductivity σ but suppress the Seebeck coefficient S, so ZT peaks at an intermediate doping level, not at the extremes.
- ZT vs. pristine baseline — recomputes ZT with grain size fixed at 300 nm (no boundaries) and 0% rattlers, everything else unchanged, so you can see exactly how much the nanostructuring you dialed in is buying you.
Real materials: bulk-nanostructured BiSbTe reaches κ_l ≈ 0.5 W/m·K via ~20 nm grains (Poudel et al.); filled skutterudites reach κ_l ≈ 1.5 W/m·K via rattling (vs. 10 W/m·K unfilled); record SnSe single crystals hit ZT = 2.6 through extreme lattice anharmonicity instead of nanostructuring at all.