A chip is small and the heat sink is big. Between them sits a spreader plate, often copper, whose job is to spread the heat sideways before it goes down into the sink. How thick should it be?
I modelled the textbook version of that question in NovaSolver Studio and compared it with the exact series solution. The setup:
- Copper disk, 50 mm in diameter, k = 400 W/mK
- A 10 W source, 10 mm in diameter, centred on the top face (uniform heat flux)
- The bottom face goes to the heat sink, modelled as a uniform heat transfer coefficient h = 1000 W/m²K to 20 °C
- Everything else is insulated
I solved six thicknesses, from 0.5 mm to 20 mm.
Results
Temperature rise at the centre of the source, above the coolant:
| Thickness | Studio | Exact series | Difference | Lee et al. closed form |
|---|---|---|---|---|
| 0.5 mm | 14.74 K | 14.75 K | −0.04% | 14.97 K |
| 1 mm | 10.30 K | 10.31 K | −0.04% | 10.32 K |
| 2 mm | 7.96 K | 7.96 K | −0.03% | 7.93 K |
| 5 mm | 6.71 K | 6.71 K | −0.03% | 6.68 K |
| 12 mm | 6.51 K | 6.51 K | −0.02% | 6.53 K |
| 20 mm | 6.59 K | 6.59 K | −0.02% | 6.62 K |
Studio matched the exact series within 0.05% for all six. The average temperature over the source matched within 0.06%.
What the numbers say:
- Going from 0.5 mm to 2 mm almost halves the rise, from 14.7 K to 8.0 K
- From 5 mm on, little changes: 6.71 K at 5 mm, 6.51 K at 12 mm (3% less)
- In the exact series the minimum is at about 11 mm (6.51 K). At 20 mm the source is slightly hotter again (6.59 K)
Why it stops helping
The rise has two parts (the split below is from the exact series). One is the plain one-dimensional part: the sink's own resistance, 1/(hA) = 0.51 K/W, plus conduction straight through the plate. For 10 W, the sink contribution alone is 5.1 K at every thickness; through-thickness conduction adds 0.013 K per mm. The other is the spreading part: the extra rise because the heat enters through a 10 mm spot and has to fan out to the 50 mm disk.
| Thickness | 1D part (exact series) | Spreading part (exact series) |
|---|---|---|
| 0.5 mm | 5.10 K | 9.65 K |
| 2 mm | 5.12 K | 2.84 K |
| 5 mm | 5.16 K | 1.55 K |
| 12 mm | 5.25 K | 1.27 K |
| 20 mm | 5.35 K | 1.24 K |
A thicker plate cuts the spreading part, but only until the heat has room to fan out. In the closed form below this shows up as tanh(λc t/b): it is 0.83 at 5 mm and 0.99 at 12 mm, so by then the plate has done nearly all it can. After that the spreading part hardly moves, and the slow growth of the 1D part wins. With this sink, the floor is the 5.1 K that the sink itself costs. No spreader gets below it.
The closed form is good enough for sizing
Lee, Song, Au and Moran (1995) gave a closed-form approximation for exactly this geometry that is widely used in electronics cooling:
with ε = a/b (source radius over disk radius), τ = t/b, Bi = hb/k, and the spreading resistance ψ/(√π k a) added to the 1D part once. For this case it is within 1.6% of the exact series from 0.5 to 5 mm and 0.47% high at 20 mm. For choosing a thickness that is fine.
import math def lee_rise_max(k, h, a, b, t, Q): eps, tau, Bi = a / b, t / b, h * b / k lc = math.pi + 1 / (math.sqrt(math.pi) * eps) phi = (math.tanh(lc * tau) + lc / Bi) / (1 + lc / Bi * math.tanh(lc * tau)) psi = (1 - eps) * phi / math.sqrt(math.pi) r1d = t / (k * math.pi * b * b) + 1 / (h * math.pi * b * b) return Q * (psi / (math.sqrt(math.pi) * k * a) + r1d) print(lee_rise_max(400, 1000, 0.005, 0.025, 0.002, 10)) # 2 mm copper -> 7.93 K The exact series comes from separating variables in r and z, with Bessel modes J₀(λr) whose λ make the rim insulated (J₁(λb) = 0). It takes a few lines of NumPy and SciPy.
How it ran
The disk is a quarter model; the two cut planes are left insulated, which is the symmetry condition for heat. Over MCP, one case is:
t = import_geometry(path="spreader_t2.step", physics="thermal", units="mm") update_case(case_id=cid, expected_revision=1, changes={ "materials.solid.preset": "copper", "materials.solid.k": "400 W/mK", f"boundaries.{src}.role": "heat-flux", f"boundaries.{src}.flux": "127324 W/m2", # 10 W over the 10 mm spot f"boundaries.{bottom}.role": "convection", f"boundaries.{bottom}.h": "1000 W/m2K", f"boundaries.{bottom}.tinf": "20 degC", f"mesh.refine.{src}": "0.5 mm"}) check_convergence(case_id=cid) # solves on three meshes and estimates the discretisation error Studio's mesh convergence check passed for all six (GCI 0.53% or less). On a first try without the 0.5 mm refinement on the source face, three of the six did not pass: the value kept rising by about the same step at each refinement, so Studio could not extrapolate it (GCI estimates 4.0, 6.1 and 4.3%). The source face is refined in all the runs above.
These runs used a local development build after v0.7.6 (2026-11-12).
Takeaways
- For a 10 W, 10 mm source on a 50 mm copper disk over a 1000 W/m²K sink, Studio matched the exact series within 0.05% from 0.5 mm to 20 mm
- Most of the benefit comes in the first few millimetres: 0.5 mm → 2 mm almost halves the rise, and beyond about 5 mm the gain is about 3%
- There is a shallow optimum near 11 mm; thicker than that the plate itself adds more than it saves
- Lee's closed form is within 1.6% up to 5 mm and 0.47% high at 20 mm, good enough to size a spreader
The uniform h on the bottom is an idealisation: a real heat sink base has its own spreading, and h varies over it. The trend with thickness is the part that carries over.
NovaSolver Studio is free and open source (GPL-3.0). It solves structural, thermal, flow and electrical problems in one app and can be driven from MCP clients such as Claude Desktop.
- Overview and download: https://novasolver.jp/studio/
- Source code: https://github.com/novasolver/novasolver-studio


