Build ec-tools-v82 · run 24 September 2026
- 22 / 22 solver checks passed
- 33 / 33 junction templates rasterised, solved and audited
- 0 boundary-condition leaks across all templates
1. The BS EN ISO 10211 test reference case
BS EN ISO 10211 publishes test reference cases so that any calculation method can be checked against a known answer. Case 2 is the two-dimensional one that matters for junctions: a concrete slab with a wooden batten, an aluminium window frame and insulation — deliberately awkward, because the aluminium (λ = 230 W/m·K) sits next to insulation (λ = 0.029) and a solver that smears heat across that contrast will fail. The standard gives nine reference surface temperatures and the total heat flow, and a method is expected to reproduce them to 0.1 °C and 0.1 W/m.
| Point | Standard | ΨMonkey | Deviation | Limit | |
|---|---|---|---|---|---|
| A | 7.1 °C | 7.062 °C | 0.038 K | 0.100 K | PASS |
| B | 0.8 °C | 0.761 °C | 0.039 K | 0.100 K | PASS |
| C | 7.9 °C | 7.895 °C | 0.005 K | 0.100 K | PASS |
| D | 6.3 °C | 6.265 °C | 0.035 K | 0.100 K | PASS |
| E | 0.8 °C | 0.828 °C | 0.028 K | 0.100 K | PASS |
| F | 16.4 °C | 16.407 °C | 0.007 K | 0.100 K | PASS |
| G | 16.3 °C | 16.333 °C | 0.033 K | 0.100 K | PASS |
| H | 16.8 °C | 16.768 °C | 0.032 K | 0.100 K | PASS |
| I | 18.3 °C | 18.334 °C | 0.034 K | 0.100 K | PASS |
| Heat flow | 9.5 W/m | 9.489 W/m | 0.011 W/m | 0.100 W/m | PASS |
Worst temperature deviation across the nine points: 0.039 K — about a third of the permitted tolerance. Heat flow is within 0.011 W/m of the reference value.
2. Analytical benchmarks and geometry regressions
A reference case proves the solver gets one hard problem right. These twelve checks prove it gets the easy ones exactly right — where an exact answer exists, ΨMonkey has to reproduce it to six figures, not approximately — and that its geometry handling doesn't drift.
| Check | Expected | ΨMonkey | Tolerance | |
|---|---|---|---|---|
| Flat homogeneous wall — U-valueAnalytical 1D solution | 1.754386 W/m²K (exact) | 1.754386 | 0.0001 | PASS |
| Flat homogeneous wall — ΨNo bridge present, so Ψ must vanish | 0 (exact) | 1.6 × 10⁻¹¹ | 0.0001 | PASS |
| Flat homogeneous wall — f_Rsi, Rsi 0.13 fieldAnalytical 1D surface temperature on the Ψ field | 0.771930 (exact) | 0.771930 | 0.0001 | PASS |
| Flat homogeneous wall — f_Rsi, Rsi 0.25 (BR 497)The surface-temperature basis the reported f_Rsi uses (BR 497 / BS EN ISO 13788) | 0.637681 (exact) | 0.637681 | 0.0001 | PASS |
| Multilayer wall + ISO 6946 cavity — UBrick / cavity Rc 0.18 / block | 0.719963 W/m²K (exact) | 0.719963 | 0.0001 | PASS |
| Multilayer wall — ΨLayered but unbridged | 0 (exact) | 8.2 × 10⁻¹² | 0.0001 | PASS |
| Upward heat flow, Rsi 0.10 — UDirectional surface resistance | 0.194553 W/m²K (exact) | 0.194553 | 0.0001 | PASS |
| Laplace field vs Fourier-series solution — max |ΔT|Pure-conduction field against a closed-form analytical solution, sampled at 9 interior points | 0 K | 0.0007 K | 0.1 K | PASS |
| Tilted slab 18.5° — ΨGeometry regression: a uniform sloped slab has no bridge, so Ψ must stay at zero however it is tilted | 0 W/(m·K) | 0.0040 | 0.008 | PASS |
| Tilted slab 30° — ΨAs above, steeper | 0 W/(m·K) | 0.0028 | 0.010 | PASS |
| R4 ridge at 18.5° — ΨRidge Ψ should reflect the timber ridge member only | 0.008 W/(m·K) | −0.0005 | 0.015 | PASS |
| R4 ridge — swing between 18.5° and 45°Pitch invariance: the same detail at a different pitch must not move Ψ | 0 W/(m·K) | 0.027 | 0.040 | PASS |
3. All 33 junction templates
Separately from the solver checks, every shipped junction template is drawn, audited and solved on each build — at its default build-up and again after the build-up has been edited, because a template that only works untouched is no use to anyone. The audit confirms each detail rasterises to the geometry it describes, that no internal surface ends up adjacent to an external one (a leak that would silently understate Ψ), and that the solution converges with a closed energy balance.
The Ψ-values below are what the shipped defaults produce — the accredited full-fill masonry wall, with every other element at the template default. They are a starting point, not your answer: change a thickness or a material and they move, which is the entire point of the tool. The same 33 templates solved against eight named walls are on the psi values reference page, each figure a click from the model that made it.
fRsi is the BR 497 / BS EN ISO 13788 figure: solved as a second field with Rsi = 0.25 m²K/W on internal surfaces (0.13 on glazing). Ψ uses the BS EN ISO 6946 films. Party-wall junctions are shown whole; BR 497 gives each of the two dwellings half, and the app and the report both print that per-dwelling figure for SAP. Five SAP references are listed in the app with an explanation rather than a model: E19, P6, P2, P3, P8 — P2 and P3 are Ψ = 0 in SAP, E19 and P6 need a whole-section ground model, and P8 has no single representative section.
| Ref | Junction | Ψ (W/m·K) | fRsi | Leaks | |
|---|---|---|---|---|---|
| E1 | Lintel — steel (window head) | 0.2234 | 0.705 | 0 | PASS |
| E2 | Lintel — insulated, no base plate (window head) | 0.1966 | 0.691 | 0 | PASS |
| E3 | Cill (window sill) | 0.0472 | 0.658 | 0 | PASS |
| E4 | Jamb (window reveal) | 0.0048 | 0.763 | 0 | PASS |
| E5 | Ground floor (suspended beam & block) | 0.0729 | 0.808 | 0 | PASS |
| E5s | Ground floor (solid ground-bearing slab) | 0.0971 | 0.821 | 0 | PASS |
| E20 | Exposed floor (normal) | 0.0629 | 0.909 | 0 | PASS |
| E21 | Exposed floor (inverted) | -0.0797 | 0.957 | 0 | PASS |
| E22 | Basement floor | 0.0328 | 0.874 | 0 | PASS |
| E6 | Intermediate floor (within dwelling) | 0.0092 | 0.957 | 0 | PASS |
| E7 | Party floor between dwellings | 0.0481 | 0.957 | 0 | PASS |
| E8 | Balcony — insulation continuous | 0.0000 | 0.957 | 0 | PASS |
| E9 | Balcony between dwellings | 0.0141 | 0.957 | 0 | PASS |
| E23 | Balcony — support penetrates insulation | 0.3842 | 0.583 | 0 | PASS |
| E10 | Eaves (insulation at ceiling level) | 0.0347 | 0.904 | 0 | PASS |
| E11 | Eaves (insulation at rafter level) | 0.0557 | 0.923 | 0 | PASS |
| E24 | Eaves (insulation at ceiling — inverted) | 0.1481 | 0.730 | 0 | PASS |
| E12 | Gable (insulation at ceiling level) | 0.0456 | 0.896 | 0 | PASS |
| E13 | Gable (insulation at rafter level) | 0.0363 | 0.903 | 0 | PASS |
| E14 | Flat roof | 0.0613 | 0.917 | 0 | PASS |
| E15 | Flat roof with parapet | 0.0858 | 0.903 | 0 | PASS |
| E16 | Corner (normal) | 0.0372 | 0.909 | 0 | PASS |
| E17 | Corner (inverted) | -0.0753 | 0.909 | 0 | PASS |
| E18 | Party wall / external wall (whole junction; half to each dwelling) | 0.0552 | 0.954 | 0 | PASS |
| E25 | Staggered party wall (whole junction; half to each dwelling) | 0.0253 | 0.910 | 0 | PASS |
| P1 | Party wall — ground floor (whole junction; half to each dwelling) | 0.2290 | 0.891 | 0 | PASS |
| P7 | Party wall — exposed floor (whole junction; half to each dwelling) | 0.0545 | 0.950 | 0 | PASS |
| P4 | Party wall — roof (insulation at ceiling) (whole junction; half to each dwelling) | 0.3286 | 0.733 | 0 | PASS |
| P5 | Party wall — roof (insulation at rafter) (whole junction; half to each dwelling) | 0.0521 | 0.952 | 0 | PASS |
| R1 | Roof window — head | 0.0694 | 0.796 | 0 | PASS |
| R2 | Roof window — sill | 0.0632 | 0.788 | 0 | PASS |
| R3 | Roof window — jamb | 0.0320 | 0.854 | 0 | PASS |
| R4 | Ridge (vaulted ceiling) | -0.0039 | 0.834 | 0 | PASS |
4. What this does — and doesn't — prove
Validation is worth something only if it's honest about its limits, so:
- It proves the engine is sound. The solver reproduces the published reference case and every closed-form solution we can throw at it. If ΨMonkey gives you a wrong number, it will not be because the physics is wrong.
- It does not validate your model. A correct solver on a badly drawn junction gives a confidently wrong Ψ. The tool checks convergence, energy balance and model extent on every run and flags them in the report, but the geometry and the materials are yours.
- The built-in templates are representative details, not certified ones. Each draws a typical, buildable version of its junction; your drawings will differ somewhere, so edit the template until it matches them. Where a junction contains thin, high-contrast features, use Manual U·l mode and a finer cell size.
- Ψ depends on the dimension convention. ΨMonkey subtracts flanking heat loss on SAP internal dimensions per BR 497, which is what SAP and HEM expect. Inverted junctions correctly read negative under that convention.
5. Run it yourself
The validation suite ships inside the app — this isn't a report we wrote about ourselves. Open ΨMonkey and click ✓ Validate in the sidebar: it runs these same 22 checks in your own browser, on your machine, and prints the same table. (The ISO 10211 reference case is a 95,000-cell model, so give it 10–20 seconds.) If a check ever fails for you, we want to know — 01202 623236.
Case numbering follows BS EN ISO 10211:2017. Every paid ΨMonkey report carries a printed report ID that Building Control can verify in seconds, and cites this validation on its quality-assurance page.