RasmahRasmah

Thermal Contact Resistance and the Composite Wall

using Rasmah

Overview

When two solids are pressed together, the microscopic gaps at the interface add a thermal contact resistance R_c (a temperature jump ΔT = q R_c for a given heat flux q). This matters in electronics (die-to-heat-sink), bolted joints, and layered materials. Rasmah models it with the contact conductance h_c = 1/R_c, the equivalent thin layer, and the analytic composite wall solution, all verified against the classical series-resistance result.

Contact conductance and thin layers

Rc = 0.001          # m²K/W
println("conductance h_c = ", thermal_contact_conductance(Rc), " W/(m²K)")
# the equivalent conductivity of a thin layer of thickness t modelling Rc
println("k_c (t = 1 mm) = ", thin_layer_conductivity(Rc, 0.001))
conductance h_c = 1000.0 W/(m²K)
k_c (t = 1 mm) = 1.0

The composite wall

A two-layer wall (thicknesses L₁, L₂, conductivities k₁, k₂) with a contact resistance R_c between them, held between T_hot and T_cold. The heat flux is the series-resistance result

\[q = \frac{T_{hot}-T_{cold}}{L_1/k_1 + R_c + L_2/k_2}\]

and the temperature is piecewise-linear with a jump q R_c at the interface:

Thot, Tcold, L1, L2, k1, k2 = 400.0, 300.0, 0.05, 0.03, 20.0, 2.0
q = composite_wall_flux(Thot, Tcold, L1, L2, k1, k2, Rc)
println("flux q = ", round(q; digits=1), " W/m²")
T1_int = Thot - q * L1 / k1
T2_int = Thot - q * (L1 / k1 + Rc)
println("temperature jump at the interface = ", round(T1_int - T2_int; digits=4), " K (= q·Rc = ", round(q*Rc; digits=4), ")")
flux q = 5405.4 W/m²
temperature jump at the interface = 5.4054 K (= q·Rc = 5.4054)

Finite-difference solve

composite_wall_1d couples the two grids through the contact conductance and must reproduce the analytic profile:

x, T = composite_wall_1d(50, 30; Thot=Thot, Tcold=Tcold, L1=L1, L2=L2, k1=k1, k2=k2, Rc=Rc)
maxerr = maximum(abs(T[i] - composite_wall_temperature(x[i], Thot, Tcold, L1, L2, k1, k2, Rc))
                 for i in eachindex(x))
println("max |T - T_exact| = ", maxerr, "   (≈ 0)")
max |T - T_exact| = 8.981260180007666e-12   (≈ 0)

Next steps