Validation/Steady conduction
Steady conduction through a plane wall
A steel wall driven by an imposed flux and by a convective film, against the closed form. The answer is linear and therefore inside the element space, so this pins coefficients and sign conventions rather than spatial accuracy — and says so.
Why this case
Before this case the thermal solver family had never been held against a closed-form answer of any kind. Every check it had was of the form “did the run reach End”.
Steady conduction through a plane wall is the smallest problem that fixes that. One face is held at a known temperature, the other is driven, and the temperature the driven face settles at is arithmetic a reader can do on paper. There is no correlation to transcribe and nothing to argue about.
It is worth being blunt about what such a case can and cannot measure, because the agreement below is six figures and six figures is easy to over-read. The exact answer here is linear in the coordinate through the wall, and a linear field lies inside the finite-element space of even first-order tetrahedra. Any correct implementation therefore reproduces it to round-off, on the coarsest mesh it can build. This case measures coefficients and conventions, not spatial accuracy. Those are the things that are wrong in practice, and they are wrong by tens of kelvin rather than by fractions of a per cent.
| Physics | Steady linear conduction, one-dimensional by construction |
|---|---|
| Backend | code_aster 18.0.12, meshed by Netgen |
| Wall | Steel slab 0.1 m thick, λ = 45 W/m·K |
| Fixed face | Held at 300 K |
| Sides | No condition at all — code_aster’s natural zero-flux, so the problem really is 1-D |
| Case 1 | Imposed flux of 20 000 W/m² into the far face |
| Case 2 | Convective film, h = 50 W/m²·K to an 800 K ambient |
| Meshes | Two: the 19-tetrahedron default, and maxh 0.004 at 2 136 tetrahedra |
| Reference | The closed-form solution of the steady one-dimensional heat equation, with the series-resistance form for a convective film |
| Agreement | Driven face 344.444 K against an exact 344.444444 K on the flux case, and 350.0000 K against an exact 350.0000 K on the film case |
The exact solution
With no source and constant conductivity the steady heat equation in one dimension is T″ = 0, so the profile is a straight line between the two faces and the whole problem is the size of its slope. For an imposed flux q into the far face of a wall of thickness L whose near face is held at T₀,
Case 1 — imposed flux
T_hot = T0 + q L / lambda
= 300 + 20000 x 0.1 / 45
= 344.444444 KThe convective case adds a second resistance in series with the wall. The film carries the heat from an 800 K ambient into the outer face, the wall carries it on to the fixed face, and the same q passes through both:
Case 2 — convective film
q = (T_ext - T0) / (L/lambda + 1/h)
= (800 - 300) / (0.1/45 + 1/50)
= 22 500 W/m^2
T_surf = T_ext - q/h = 800 - 22500/50 = 350.0000 K
T_hot = T0 + q L/lambda = 300 + 50 = 350.0000 KThe two lines agree, which is the statement that the outer face of the wall and the inner face of the film are the same surface. That is the check with teeth in case 2: at h = 50 W/m²·K over 0.1 m of steel the film carries 1/h ÷ (L/λ + 1/h) = 90 % of the total resistance, so getting the wall right and the film wrong still produces a plausible-looking number in the low three hundreds. 350.0000 K is only correct if both terms are.
Result
| Case | Mesh | Tetrahedra | Driven face (K) | Exact (K) | Difference |
|---|---|---|---|---|---|
| Imposed flux | default | 19 | 344.444 | 344.444444 | −1.3 × 10⁻⁴ % |
| Imposed flux | maxh 0.004 | 2 136 | 344.444 | 344.444444 | −1.3 × 10⁻⁴ % |
| Convective film | default | 19 | 350.0000 | 350.0000 | 0 % |
| Convective film | maxh 0.004 | 2 136 | 350.0000 | 350.0000 | 0 % |
The fixed face reads 300.0000 K in all four runs, which is what was imposed. The measurement band on this case is a tenth of a per cent, and that is not a generous tolerance dressed up as a tight one: because the answer is inside the element space, a tenth of a per cent here would not be mesh noise. It would be a different calculation.
The sign convention, checked separately
A heat flux carries a sign convention, and the two solver families in this product do not share one. The structural pressure load is positive out of the body; code_aster’s thermal flux keyword is positive into it. Getting that backwards is not a small error — it puts the driven face below the fixed one, which is a large error in the one direction nobody looks.
So it is asserted on its own rather than left to the magnitude test, because an inverted flux does not necessarily fail a magnitude test: it can land the same distance from the exact answer on the wrong side of the fixed face. The condition checked is simply that the driven face came out hotter than the fixed one.
| Configuration | Driven face (K) | Exact (K) | Difference |
|---|---|---|---|
| As written | 344.444 | 344.444444 | −1.3 × 10⁻⁴ % |
| Flux sign inverted | 255.555556 | 344.444444 | −88.889 K |
Why not two fixed temperatures
The obvious version of this case — hold both faces at known temperatures and check the profile between them — cannot be read from what the product writes. The steady thermal deck’s summary is the minimum and the maximum temperature in the body. With two imposed temperatures those are the two numbers imposed, and the check would amount to confirming that code_aster can apply a boundary condition.
Driving one face with a flux or a film instead makes the other face’s temperature an answer rather than an input, and the extrema the product already reports then carry it. That is why the case is shaped this way, and it is why nothing here has to go behind the product and open the result file itself.
What this page does not establish
- No convergence order is measured, and none can be. The case whose answer is not in the element space is the transient one, where the profile is a decaying sine that no polynomial element reproduces exactly. That is a separate page.
- Only two boundary condition types are exercised. An imposed flux and a convective film. Radiation, contact resistance and temperature-dependent conductivity are all absent, and a linear reference could not check any of them.
- The conductivity is constant and the body is a single material. Nothing here says anything about conduction across an interface between two of them.
- Nothing transient is established. Every run on this page is a single steady solve, and the time integration is not exercised at all.
Repeat this yourself
Every case here is set up from the worked examples in the product, with no hand-editing of solver files — so you can run it, and get the same numbers. The free tier runs real cases up to 250,000 cells of fluids, or 100,000 nodes of solid, with no account needed to download and no time limit.
Other cases
- Transient conduction in a slabA slab stepped on both faces, against the Fourier series. The first thermal case whose error is discretisation rather than bookkeeping — and the one that shows the time step, not the mesh, is what limits it.
- Transient slab conduction in OpenFOAMThe same mathematics as the code_aster slab, reached through a different code — and with the two discretisation orders measured separately, second in space and first in time, exactly as the schemes promise.
- Heat crossing a solid–fluid interfaceNeither check needs a reference table. If both regions start at one temperature nothing may move; and with no heat source anywhere, no temperature may leave the range its own data started in.
All validation cases · Written by the team building SHD Sim.