NAFEMS T3: 1D Transient Heat Conduction
The problem: a bar heated by a sine wave
Overview
NAFEMS T3 is a heat-conduction benchmark. What does such a simple 1D problem check?
It's a transient problem where temperature changes with time, checking not only mesh fineness but whether time marching is right. One end's temperature rises and falls as a sine wave, and heat reaches the interior with a lag. The target is the value at 32 s, after the boundary has peaked and begun falling, so time-integration error shows up directly. Let's build the exact series solution and vary elements and time steps in finite differences to see how they approach the 36.60 °C reference.
Problem definition
Length 0.1 m, conductivity 35 W/mK, density 7200 kg/m³, specific heat 440 J/kgK (diffusivity 1.10×10⁻⁵ m²/s). Find the temperature at 32 s at 0.08 m from the 0 °C end — 0.02 m from the heated end. The reference is 36.60 °C.
Exact series solution
$\xi$ is the distance from the heated end. Splitting off a linear part carrying the boundary temperature and expanding the rest in eigenfunctions turns each coefficient into a first-order ODE. With 4000 terms the value is 36.626 °C, unchanged at 8000.
NAFEMS benchmarks
NAFEMS was founded in the UK in 1983 to improve confidence in analysis methods such as finite elements. From the late 1980s to around 1990 it compiled standard benchmarks for linear elasticity (LE), heat transfer (T), vibration (FV) and more, so any software could solve the same problems and compare results. Many commercial codes' verification manuals still list these problems and their references. T3 is the basic problem among them for checking time integration in transient conduction.
Worked example: convergence with finite differences
Elements, time step and time integration
| Elements | CN, Δt 2 s | CN, Δt 0.5 s | Backward Euler, Δt 2 s | Backward Euler, Δt 0.5 s |
|---|---|---|---|---|
| 5 | 34.83 | 34.89 | 34.22 | 34.73 |
| 10 | 35.90 | 35.96 | 35.09 | 35.75 |
| 20 | 36.38 | 36.44 | 35.49 | 36.20 |
| 40 | 36.52 | 36.58 | 35.61 | 36.33 |
Values in °C; CN is Crank–Nicolson. With 40 elements, CN and Δt = 0.05 s give 36.58 °C. The series solution is 36.63 °C and the reference 36.60 °C.
Temperature history
| Time | Heated-end temperature | Target-point temperature |
|---|---|---|
| 8 s | 58.8 °C | 2.8 °C |
| 16 s | 95.1 °C | 14.9 °C |
| 24 s | 95.1 °C | 28.8 °C |
| 32 s | 58.8 °C | 36.6 °C |
| 40 s | 0.0 °C | 33.9 °C |
The heated end peaks at 20 s, yet the target point is still rising.
The time for heat to travel 0.02 m is roughly distance squared over diffusivity, about 36 s — comparable to the boundary period (80 s). So the target lags the boundary: at 32 s it's still rising, and at 40 s, when the boundary is back to 0 °C, it's still 34 °C. Capturing this lag needs time integration that doesn't distort the phase. Backward Euler has strong numerical damping that smooths the variation, coming out about 1 °C low at Δt = 2 s. Crank–Nicolson is second-order, differing by only 0.06 °C between Δt = 2 s and 0.5 s. Element count matters too — 5 elements are nearly 2 °C low — and only 40 elements with Δt = 0.5 s bring the error within 0.1% of the reference.
Using the benchmark
- First read the definition precisely (target location, which end is heated).
- Double the element count repeatedly and check the observed convergence order.
- Vary the time step likewise, separating time-integration error from spatial error.
- Check the software's default time integrator (backward Euler, CN, etc.).
- Record results with element count and time step, not just the difference from the reference.
“The location was read backwards”
Verifying one program on T3, the target temperature came out 0.09 °C — nowhere near the 36.60 °C reference. A software bug was suspected, but the cause was misreading the problem: '0.08 m' had been measured from the heated end. Re-evaluating at 0.08 m from the 0 °C end — 0.02 m from the heated end — gave 36.6 °C. The lesson: with benchmarks, read the definition precisely before computing.
Common mistakes
Mistakes and fixes
| Mistake | Effect | Fix |
|---|---|---|
| Measuring from the wrong end | Wildly wrong value (e.g. 0.09 °C) | Check definition |
| Large time step | Peaks smeared | Vary Δt |
| Judging by backward Euler only | About 1 °C error | Try second-order schemes |
| Coarse mesh | Nearly 2 °C error | Refine by doubling |
| Wrong property units | Diffusivity off by orders | Compute α to check |
I'd like to learn related topics.
Related pages include NAFEMS T2, NAFEMS LE1, NAFEMS LE10, solution verification and Richardson extrapolation.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators