Numerical Methods · interactive worked example
A hot plate, suddenly cooled to zero on all four edges. In 2D, the explicit time-stepping limit is even tighter than the 1D fin's — every extra dimension makes explicit pay more. ADI sidesteps the penalty entirely by splitting each step into two easy 1D solves.
Completes the set: 1D steady (fin), 1D transient (fin stability), 2D steady (2D conduction) — this is 2D transient.
Plate temperature — quenched on all 4 edges, decaying toward zero
—
In 1D, the stability limit comes from one diffusion direction. In 2D, both $x$ and $y$ diffusion are trying to spread the error every step, and their effects add — so the safe time step shrinks. With equal spacing in both directions, the 2D limit is exactly half the 1D one: refining a 1D mesh hurts, but refining a 2D mesh hurts twice as much, before you've even added a third dimension.
ADI breaks one full time step into two half-steps. The first half-step treats $x$-diffusion implicitly and $y$-diffusion explicitly; the second half-step swaps which direction is implicit. Each half-step is only implicit in one direction at a time, which means it's just a row-by-row (or column-by-column) tridiagonal solve — the same fast Thomas algorithm from the 1D fin-stability lab, run once per row, then once per column. Stitch the two half-steps together and the result is unconditionally stable in both directions at once, for a cost barely more than two 1D solves.
Push the explicit time step past 1.0× and press Play — it diverges, sometimes after a deceptively calm-looking start (instability right at the edge of the limit grows slowly before it suddenly doesn't). Switch to ADI at 3× or 5× that same "explicit-only" limit and watch it stay perfectly smooth.
EngineeringCandy · 2D explicit vs. ADI, same plate, same quench · break the time step on purpose