← All FAQ topics
FAQ / ψ-value & FEM

ψ-value Calculations & FEM

How the finite element solver, mesh, convergence checks, and ψ-value/fRsi derivation actually work.

What calculation method does Psiclops use for ψ-values?

Psiclops uses a 2D finite element method (FEM) solver based on EN ISO 10211:2017 — the European standard for thermal bridges in building construction. The solver calculates the temperature field across the junction cross-section, integrates the heat flux, and derives the ψ-value and fRsi (minimum surface temperature factor) from first principles. The method is validated against the EN ISO 10211 reference cases.

Has Psiclops's FEM solver been checked against independently published reference cases?

Yes — this is verified against a real, published set of cases, not just claimed. Our calculation verification page runs the solver against EN ISO 10211:2017's own Annex C reference cases for ψ-value calculations, and BS EN ISO 13788's own Annex C worked examples for the annual condensation method, alongside dedicated checks for U-value and ground-floor methods. Every case's expected result is published in the standard itself, so it's independently checkable — not a figure we've asserted ourselves.

What is EN ISO 10211?

EN ISO 10211 is the European standard that defines the methodology for calculating thermal bridges in building construction using numerical methods. It specifies boundary conditions, material properties, geometric conventions, and validation requirements. A calculation that follows EN ISO 10211 and BR 497 conventions is the standard that SAP assessors are required to accept for bespoke ψ-value submissions.

What is fRsi and why does it matter?

The temperature factor fRsi (minimum surface temperature factor) is derived from a second finite element solve of the same drawn geometry, using the standard assessment temperatures (20°C internal, 0°C external) in place of the junction's own design temperatures, so that any two junctions are compared on the same footing. The surface resistances are deliberately NOT substituted: BR 497 §3.2 requires "the surface resistance appropriate to the element being analysed" to be used at all times, so the same direction-dependent values as the ψ-value solve apply — a wall face and a ceiling soffit in the same model legitimately carry different figures. It measures the ratio of the temperature difference between the internal surface and external air to the total temperature difference. A low fRsi indicates a cold spot on the internal surface, which creates condensation risk and potential mould growth. SAP 10.3 and BR 497 require fRsi to be reported alongside ψ-values. Psiclops calculates and reports fRsi automatically.

Does Psiclops automatically halve the ψ-value for a party wall, per BR 497?

Yes. Where your drawn geometry indicates a genuine party wall between dwellings, Psiclops detects this automatically and halves the declared ψ-value per BR 497's own convention — since the heat loss through a shared element is split between the two dwellings on either side of it, not counted twice. The pre-halving figure and the citation for why it was applied are both carried through to the report, so the working is never hidden.

What DXF file format does Psiclops accept?

Psiclops accepts DXF files (Drawing Exchange Format) produced by any CAD tool — AutoCAD, Revit, ArchiCAD, FreeCAD, or similar. The DXF should contain a 2D cross-section of the junction drawn to scale, with different material zones represented as closed polylines or regions on separate layers. Psiclops extracts the geometry, identifies material zones, and runs the FEM solver on the processed mesh.

I only have a PDF of the drawing, not a DXF — what can I do?

Psiclops itself only accepts DXF, but if your drawing is a genuine vector PDF (exported from CAD, not a scan or photo of a paper drawing), a number of PDF-to-DXF conversion tools are available — both free and paid — that extract the underlying vector geometry into a DXF file you can then upload and use exactly as normal. We don't recommend a specific product, since the right choice depends on your drawing and what you already have access to, but it's worth checking whether your CAD software or design team can simply re-export the original drawing as a DXF directly first, since that avoids a conversion step and any risk of it altering the geometry. A scanned or photographed drawing (as opposed to a vector PDF) isn't a good candidate for this route at all — reconstructing precise, scaled geometry from a raster image isn't reliable enough for a calculation whose accuracy matters for compliance.

How does the solver actually derive a ψ-value from the geometry, in engineering terms?

BR 497's combined method is ψ = L2D − Σ(Uᵢ × lᵢ). L2D is the junction's total 2D thermal coupling coefficient — the total heat flow through the whole modelled cross-section divided by the internal-to-external temperature difference — read directly off the solved temperature field. Uᵢ is each flanking element's own U-value and lᵢ is its length as actually drawn. Critically, Psiclops never looks Uᵢ up from a library or asks the user for it: it reads the local heat flux straight off the same solved field, at the point where each flank meets its modelling cut, and divides by the junction's overall temperature difference. This is the FEM equivalent of what an engineer would do by hand from a finished isotherm plot — read the isotherm spacing at the point of interest. Only Table K1's defaults are looked-up values; every ψ-value Psiclops reports is derived from first principles on your actual geometry.

How is the finite element mesh generated, and how fine is it?

Psiclops builds a quality-constrained triangular mesh using Delaunay triangulation with a guaranteed minimum internal angle of 30° — this prevents the long, thin, degenerate triangles that distort local temperature gradients near corners and material interfaces. Element density is scaled automatically to each junction's own bounding box, not fixed or user-configurable. You do not choose a mesh density, a grid size, or a refinement level — the same automatic quality constraint is applied to every calculation, which is also why two engineers submitting the same drawing get the same mesh and the same result.

Does Psiclops perform the iterative mesh-refinement convergence check described in BR 497?

Yes — entirely automatically, with no manual grid choice for you to get wrong, and checking BOTH of BR 497 Section 2.6's own criteria, not just one. Psiclops solves at the current mesh density, halves the maximum triangle area, re-meshes, and re-solves, comparing total heat flow between successive refinement levels until the change is under the standard's own 1% tolerance — and, for a junction, doing the same for the temperature factor (fRsi) against its own 0.005 tolerance, since these are genuinely different kinds of quantity (heat flow is integrated across the whole cross-section; the temperature factor is a single point) that are not guaranteed to settle together. Both must agree, on the same pair of refinement levels, before the calculation is reported as converged. Psiclops also goes a step beyond BR 497's own procedure: comparing two refinement levels against each other, rather than against a known-correct answer, leaves a theoretical gap where a specific small or awkwardly-shaped material region could remain poorly meshed even while the overall heat-flow comparison looks stable. Psiclops checks directly, after every refinement level, that every drawn region actually has an adequate number of mesh elements in it — not inferred from its shape or size, but measured against the mesh the solver actually built — and gives any region found short its own guaranteed-finer mesh density before that level's result is accepted. The result — whether it converged, how many refinement levels it took, and the element/node counts at each — is shown directly on the result page's Mesh card, not hidden away. The solver is also separately validated against EN ISO 10211's own published reference cases (see the Verification page), giving independent supporting evidence alongside the automatic convergence check itself.

Does Psiclops's internal surface resistance depend on the direction of heat flow?

Yes. BR 497 Table 1 sets a different internal surface resistance depending on which way heat is flowing through that surface: 0.10 m²K/W where heat flows upward (a ceiling), 0.13 m²K/W for horizontal flow (a wall), and 0.17 m²K/W where heat flows downward (a floor); external surface resistance is a uniform 0.04 m²K/W in every direction. Rather than inferring this from the angle of each drawn edge, Psiclops gives you three explicit boundary conditions to choose from — Internal, Internal (upward), and Internal (downward) — so you assign the correct value directly per edge, matching how the junction actually behaves rather than a geometric guess.

On a 2D drawing, how does Psiclops know which surfaces bound an air cavity?

Every line in the drawing carries an emissivity, and an air space simply reads its own perimeter. Ordinary surfaces are 0.9, so on most drawings there is nothing to do and the step never appears. A line takes a low value only where it is the reflective face of a material you have marked low-emissivity — and because a stated low emissivity belongs to one face of a product, not to the material throughout, Psiclops asks which face rather than guessing. That question is the Reflective surfaces step, which replaces the boundary conditions panel once every region has a material and the boundaries are set. It comes last because the candidates depend on the materials: only lines with air on one side and a low-emissivity material on the other are offered. Materials dim so the candidate lines stand out, the reflective face is drawn in red and the alternatives in blue, and clicking one moves the reflective face. Where a material has only one face against air, that face is the answer and nothing needs choosing. A face is a whole run of collinear lines, not a single segment — a surface is split into several segments wherever another region meets it, and half a face cannot be reflective on its own. The same step lists what each air space resolved to — its two emissivities, method, d, R and λ — so the effect of the choice is visible before you continue.

Which direction is an air space's heat flow, and what does that setting change?

Two different directions are at work, and BR 497 uses them for different things. The first is the junction's PRINCIPAL heat flow — inside to outside — which Psiclops derives from the boundary conditions you have already set, by comparing where the warm and cold boundaries sit. For a wall junction that is horizontal. It fixes D and B, the bounding dimensions §2.4.3 uses to transform an irregular air space into an equivalent rectangle, and you are never asked for it. The second is the LOCAL flow within one air space, which is the horizontal/upward/downward choice you make when adding it, and it selects only the convective coefficient — 1.25, 1.95 or 0.12 W/m²K in Annex B, or 0.025/d where that is larger. The two can legitimately differ. BR 497's own worked example 3 is the case in point: all three of its lintel air spaces take D horizontally, from the junction, but air space 1 sits at the base of a wall cavity where the air above is warmer than the void, so its local flow is downward and it takes the downward coefficient. Deriving D from the air space's own direction instead transposes that space and puts its conductivity around a third out. If you are unsure which local direction applies, the Reflective surfaces step shows the resulting R for each air space, so the effect of the choice is visible rather than buried in a λ.

Does every air space in a drawing get treated the same way?

No. BR 497 §2.4 separates air spaces two ways, and both change the answer — typically by a factor of two or three, so the distinction is worth getting right. The first is what kind of space it is, and that is your choice when you add it, because nothing in the geometry reveals it. A CAVITY is part of the construction and connected to other air, a wall cavity being the obvious case; it takes the plain unventilated air-layer resistance of §2.4.1.1. A DIVIDED AIR SPACE is genuinely enclosed by material, such as a void sealed inside a box lintel, and uses Annex B’s divided-air-space equations, which carry an extra shape term. The second is the shape, which Psiclops does read from the drawing: a rectangle aligned to the model axes is used as-is, anything else is first transformed into an equivalent rectangle of the same area and aspect ratio for calculation purposes only (§2.4.3), and a narrow space whose long dimension runs along the heat flow has its length cut to twice its thickness (§2.4.4), because using the real length would otherwise give what BR 497 calls “a very high (and erroneous) equivalent thermal conductivity”. Ventilation deliberately isn’t a separate choice: unventilated, minimally ventilated and slightly ventilated cavities all take the same resistance under §2.4.1.2, so offering them separately would be three routes to one number. A well ventilated cavity is different and isn’t drawn as air at all — see the question on ventilated cavities. In every case the shape in the model stays exactly as you drew it, and the report names which treatment was applied so the figure can be checked.

Two junctions are close together — should they be modelled separately or as one?

BR 497 §2.2.3 gives a firm rule: if two junctions are less than the thickness of the building element apart, they must be included in the same model; further apart than that, model them separately. The reason is that analysing two nearby bridges in isolation overestimates the heat loss, and the lowest surface temperature on the combined detail can also be lower than on either one alone — a lintel sitting within half a metre of the eaves or an intermediate floor is the common case. Psiclops models whatever you draw, so this is your decision at drawing time rather than something the software can take for you. Where you do combine them, the combined ψ then has to be apportioned before it can be used: model the first junction on its own, model the combined detail, and subtract the first from the combined to get the second junction's own share. Each part is then applied over its own length. If both junctions apply over the same length, the combined ψ can simply be used with that length directly.

How should window and door frames be handled at a reveal, lintel, or sill?

BR 497 §2.2.6 replaces the frame with an adiabatic boundary — a surface across which no heat passes — rather than modelling the frame itself. That is why the junction stops at the frame position in a Psiclops drawing, with an adiabatic edge closing it off, and it is deliberate: it lets different opening surrounds be compared on the same basis, and it means one assessment doesn't have to be repeated for every frame type, including when the frame isn't yet chosen. The standard notes this can make the temperature factor slightly optimistic, and accepts that for regulatory purposes. If you know the real frame and want a more accurate minimum surface temperature, you can build a second model that includes it — but BR 497 is explicit that such a model is for temperature assessment only and must never be used for the ψ-value, which always comes from the adiabatic-substitute model.

How far do the walls, roof, or floor either side of a junction need to extend in the drawing?

BR 497 §2.2.2 requires each flanking element to run at least 1 metre, or three times its own thickness, whichever is greater, away from the junction — or to a plane of symmetry where the feature repeats. Psiclops applies those same figures when checking a submitted drawing. If you are unsure whether a particular flanking element reaches far enough, the standard gives a test you can run yourself: note the surface temperature at that element's adiabatic edge, extend the model by at least the element's thickness, and recalculate. If the temperature factor moves by no more than 0.005 — about 0.1 °C at 20 °C inside and 0 °C outside — the shorter model was adequate; otherwise extend again and repeat. Ground floors are sized differently, by the characteristic dimension B′ rather than by this rule.

Does Psiclops need sloping surfaces to be drawn as a series of small steps?

No, and you should not do it. BR 497 §2.2.4 describes an elaborate stepping procedure — step sizes tied to the slope angle and to whether a layer is thinner than 4 mm — but that exists specifically for modelling packages that can only place rectangles on an axis-aligned grid, and it is an approximation forced on them by that limitation. Psiclops meshes the real drawn geometry with triangular elements, so a sloping or angled boundary is represented as drawn, with no stepping and none of the approximation error stepping introduces. Draw the true geometry. This also feeds through to air spaces: BR 497 notes that the shape used for an irregular air space may have had to be approximated by steps first, whereas Psiclops transforms the genuine shape.

Why has Psiclops warned that an assembly's effective thermal conductivity is only indicative?

Because for that particular assembly the figure rests on a subtraction that doesn't leave much behind. An effective conductivity is worked out by taking the assembly's total thermal resistance, removing the two surface resistances to leave the material resistance alone, and dividing the distance across the assembly by what remains. Both surface resistances are known exactly, so nothing is being approximated — but when they account for a large share of the total, what remains is the difference between two similar numbers, and any small variation in the solve is magnified as it passes into the conductivity. At a 20% share, where Psiclops starts flagging it, the magnification is about 1.25 times; at 50% it is double; at 90% it is tenfold. This happens when an assembly is thin or highly conductive relative to its surface films — a short solid steel section, or a single thin pane — rather than because anything is wrong with the drawing. Two things are worth knowing: the U-value is completely unaffected, since it never involves this subtraction, and the conductivity is still reported rather than withheld, so you can judge it yourself. If you need a firmer figure, extend the assembly in the heat-flow direction, or use the isothermal boundary conditions where the point is to derive an effective conductivity, since their near-zero resistance leaves almost nothing to subtract.

Can Psiclops model a perforated metal lintel or base-plate?

Yes, using the same two-stage approach BR 497 §2.3.1 sets out, rather than trying to draw the perforations inside the junction model itself — which would demand an impractically fine mesh over a detail many times their size. The perforated plate is modelled separately in 2D as its own assembly, drawn in plan so that the slot orientation relative to the heat flow matches how the plate actually sits in the junction, and solved to obtain a single effective thermal conductivity. That figure is then used for the plate in the junction model, treating it as a solid material. In Psiclops this is the 2D DXF assembly route, using the isothermal boundary conditions rather than ordinary surface resistances, with the result then brought into the junction drawing through the "Add from Assembly" picker. BR 497 also asks that the heat flowing into the warm face and out of the cold face agree to within 1% as a check that the modelling conditions were demanding enough. Two details decide whether the answer comes out right. Draw the slot ends as they really are: BR 497's own base-plate has 5 mm semi-circular ends, and squaring them off to a plain rectangle changes the result by about 12% — more than the tolerance the figure is quoted to. And model several repeats of the perforation pattern rather than the single repeat cell the symmetry lines in the drawing suggest, because the effective conductivity is derived by subtracting the two surface resistances from the total, and across one narrow cell those take up so much of it that little is left to divide by. Psiclops flags that for you when it happens — see the question on why an effective conductivity may be reported as only indicative. Drawn this way, Psiclops reproduces BR 497's own published base-plate figure of 6.9 W/m·K.

Why doesn't Psiclops use an internal surface resistance of 0.25 m²K/W when calculating fRsi?

Because the active Assessment Profile's criteria have to be applied as a coherent set, and BR 497 does not adopt that figure. BS EN ISO 13788 §4.4.1 recommends a uniform 0.25 m²K/W on all internal surfaces when assessing corners — a deliberately conservative value that accounts for furniture, curtains, and poor local air movement. BR 497 takes a different route: §3.2 requires the surface resistance appropriate to the element being analysed, meaning Table 1's direction-dependent values (0.10 upward, 0.13 horizontal, 0.17 downward), the same ones used for the ψ-value solve. Critically, BR 497's own note 11 explains that the critical temperature factors published in BRE IP 1/06 — including the 0.75 threshold Psiclops checks dwellings against — were themselves set to compensate for the use of those lower surface resistances, precisely because BR 497 does not model at 0.25. Applying 0.25 and then judging the result against a threshold already calibrated for 0.13 would apply the same safety margin twice and understate every junction assessed. Psiclops therefore follows whichever criteria the project's Assessment Profile actually specifies, rather than mixing a surface resistance from one convention with a threshold from another.

How does Psiclops treat a junction that loses heat to an unheated space, such as an integral garage?

Per BR 497's own convention, an unheated space is modelled as though it were fully exposed to the external environment — both the surface resistance (0.04 m²K/W) and the design temperature match "external" exactly. It is not treated as an intermediate condition with its own separate temperature and a room-side surface resistance. There is no separate "unheated space" boundary condition to select — tag the edge "External" directly; the physics is identical, by design.

Why does the coldest point used for fRsi exclude the area immediately at an internal corner?

At a sharp internal corner, the true temperature gradient is mathematically singular — it becomes unboundedly steep exactly at the corner point, a known feature of the underlying equations (a re-entrant-corner singularity), not a modelling error. Any finite mesh only approximates that singularity, and the node nearest the corner tends to read an artificially cold, mesh-density-dependent temperature rather than a physically meaningful one. BR 497 addresses this in its own 3D ground-floor corner assessment (Section 3.2.1) with a 10mm relaxation zone around the coldest point, excluded from the search along three orthogonal axes. Psiclops adapts the same 10mm relaxation distance to its 2D geometry, generically at any internal-to-internal corner, not only for ground floors — an honest adaptation of BR 497's 3D procedure to a 2D solver, not a literal implementation of it.

Does Psiclops model the full 3D corner effect BR 497 describes for ground floors?

No — this is a genuine scope limitation, stated plainly rather than glossed over. BR 497 Section 3.2.1 describes a 3D assessment of ground-floor corners, because heat at a real 3D corner can spread in three dimensions in a way a 2D cross-section cannot represent. Psiclops is a 2D solver by design (see the DXF question above); the corner-relaxation mitigation described in the previous question reduces the effect of the 2D corner singularity but does not reproduce a true 3D result. For ground-floor corner details where this matters, treat Psiclops's fRsi as a 2D-derived, conservative-leaning approximation, and where the corner condition is critical to a compliance decision, consider it alongside a specialist assessment.

What decimal precision does Psiclops report ψ-values and fRsi to?

BR 497 Section 6 specifies ψ to three decimal places and the temperature factor fRsi to two decimal places, and Psiclops displays both to exactly that precision on screen and in the report. Internally, the underlying result is kept to a finer precision than that, not rounded down at the point of calculation — the three/two decimal place figures are how the result is presented, not how little precision is actually calculated and stored.

Does Psiclops tell me if a calculation doesn't fully validate against BR 497?

Yes. Where a solved junction fails one of BR 497's own validation checks — for example, a flanking length shorter than the standard's required minimum (1000mm, or three times that element's own thickness, whichever is greater) — Psiclops surfaces this directly in the ψ-value report, clearly identified, rather than silently reporting a number without qualification. We took a deliberate position on this: if Psiclops reports were routinely presented to SAP assessors without disclosing a BR 497 validation failure, it would undermine trust in Psiclops, not in the person who submitted the report. A validation failure does not necessarily mean the ψ-value is wrong — often it means the result should be read with a specific caveat in mind — but it is always disclosed, never hidden.

How does Psiclops decide which SAP Table K1 junction type applies to my drawing?

Psiclops scores your junction's actual geometry — the boundary condition tagged on each edge (ground, external, internal), the direction and position of those edges, and whether two internal-facing runs at the same temperature indicate a party wall — against every Table K1 reference's defined characteristics, including a plausibility check (for example, a boundary tagged "ground" should sit near the bottom of the drawing, not the top). This deterministic pass is done first and does as much of the work as geometry alone can support. Only when it leaves a genuine tie between two or more plausible references does Psiclops fall back to an AI vision pass — shown the as-drawn image, materials, and geometry — to reduce or reorder that specific shortlist; the AI is never permitted to introduce a candidate outside the deterministic shortlist. Either way, you are always shown the suggested reference and asked to confirm it — or pick a different one from the full list — before results are presented. Psiclops narrows the choice; you make the final call.

How does Psiclops calculate ψ-values for ground-floor and basement wall/floor junctions?

Draw the junction normally — there's no special mode. Tag the boundary edge where the construction meets the ground "Ground" (for a solid or suspended ground floor) or "Ground (basement wall/floor)" (for a basement), the same way you'd tag any other edge "Internal" or "External". Psiclops then applies BR 497 §4.7's own convention automatically: your drawn construction is extended to BR 497's fixed model dimensions (a floor extent of ½b = 4m, and for a basement, a wall height of h_Bw = 2.4m) and set into a generated soil block sized per the standard's own 2.5b extent, before the finite element solve runs. You never draw the soil yourself, and the fixed dimensions aren't something you can override — they're BR 497's own convention, not a per-project setting. The "Modelled construction" card on your results page shows this extended construction and generated soil, cropped by default to your own real drawn extent so the actual construction detail stays legible rather than being dwarfed by the generated soil block (which can be tens of metres across); the temperature-field image elsewhere on the page shows the full generated soil, with BR 497's own fixed model dimensions (b, ½b, the 2.5b soil extent, and the 150mm below-floor step) labelled directly on it — click its small inset thumbnail to swap between the two views. This is the junction's own ψ-value, not the ground floor's own U-value — for that, see the Ground Floors FAQ.

What's different about a suspended ground floor junction?

Draw the underfloor void as a real polygon in your own model, using the material name "Underfloor void (ventilated)" exactly. Psiclops excises it during remodelling and replaces its footprint with a calculated boundary condition — the underfloor space temperature Tu, derived from ISO 13370 Annex G's own heat-balance equation using your drawing's real design temperatures, not the void's own inputs. Everything else follows the same solid-floor convention: floor extended to ½b, soil generated and subtracted.

Why does a ground-floor or basement junction's ψ-value calculation need both a wall and a floor flanking length?

BR 497's own ground-floor formula is ψ = Q2D − U'w×lw − U'f×lf (all divided by ΔT) — it has two flanking terms, not one, because a real ground-floor or basement corner has heat escaping through both the wall above and the floor beside it, sharing the same soil path. Psiclops derives both flanking U-values directly from the same solved temperature field as everything else — never looked up or asked of you — using the wall's and floor's own fixed BR 497 lengths (h_Bw for a basement wall, ½b for the floor, or the wall's own real drawn extent for a solid/suspended floor's wall flank).

Ready to calculate?

Your first U-value, Glaser check, and ψ-value are free. No card required.

Get started free →