Fabric calculators: assemblies, ground floors, and unheated spaces

Last updated: 5/1/2026

This guide describes how Vulcan’s calculators derive thermal values that align with the HEM FHS dwelling input (building elements attached to each zone). The published standards remain authoritative; this page records what the software computes and which input properties are written.

Property names follow the HEM FHS JSON Schema (e.g. input_fhs.schema.json) — in particular the BuildingElement discriminated union and its type-specific branches.


1. Assembly calculator (layered opaque fabric)

Applies to fabric elements edited through the layered construction editor — typically BuildingElementOpaque, BuildingElementPartyWall, BuildingElementAdjacentConditionedSpace, and BuildingElementGround (see §1.9). For most fabric type values the schema requires either thermal_resistance_construction or u_value. BuildingElementGround is different: it requires thermal_resistance_floor_construction and u_value (among other fields); when enough ground inputs are present, Vulcan recalculates ground u_value from the ISO 13370 path after resistance inputs change (see §4).

1.1 Standards and scope

  • Construction resistance uses BS EN ISO 6946, combined method: arithmetic mean of lower and upper construction-resistance limits.
  • Internal surface resistance Rsi uses the same radiative and convective coefficients as BS EN ISO 13789 Table 8 as implemented in HEM (resistance = 1 / (hri + hci)).
  • External resistance Rse in this calculator is not always 1 / (hce + hre); see §1.2.

1.2 Surface resistances used in U preview

Rsi from element pitch (degrees from horizontal), same banding as cavity orientation:

Band pitch hci (W/(m²·K)) Rsi (m²·K/W)
Horizontal 60° to 120° inclusive 2.5 1 / 7.630.131
Upwards below 60° 5.0 1 / 10.130.0987
Downwards above 120° 0.7 1 / 5.830.1715

Fixed hri = 5.13 W/(m²·K).

Rse:

  • Default 0.04 m²·K/W when no well ventilated cavity terminates the modelled stack.
  • With exactly one well ventilated cavity as the outer boundary, layers outside that cavity are omitted and Rse is taken from BR 443–style tabulated values for that cavity: high surface emissivity → 0.13 (horizontal heat flow) or 0.10 (upwards); low emissivity → 0.29 (horizontal) or 0.17 (upwards). Downward heat flow with that cavity type is rejected by the calculator (error state).
  • For Suspended_floor ground-floor assemblies, the underfloor void is used to split the build-up into floor deck and ground-side insulation. The deck resistance is then assessed from the layers above the void; the void itself is not treated as the outer ventilated cavity for that deck calculation, so the normal 0.04 m²·K/W external resistance applies to the deck step.

For U:

U = 1 / (Rsi + R′′T,mean + Rse)

where R′′T,mean is the combined-method construction resistance (no films).

Some auxiliary tooling uses Rse = 1/(20 + 4.14) ≈ 0.0414 m²·K/W when inferring construction R from a declared U; that value can differ slightly from the 0.04 default above.

1.3 Homogeneous layer resistance

R = d / λ (d thickness in m, λ thermal conductivity in W/(m·K)).

1.4 Repeating thermal bridges within one layer

Clear field and bridge strips are parallel. With clear-field fraction fclear = max(0, 1 − Σ fi), clear resistance Rclear, and each bridge i with fraction fi and resistance Ri:

G = fclear / Rclear + Σ (fi / Ri), Req = 1 / G

Bridge fractions must not exceed 100% of the layer area (small numerical tolerance).

1.5 Cavities

Effective cavity resistance depends on cavity type, ventilation (unventilated / well ventilated), emissivity, gap, and heat-flow direction derived from pitch. Explicit unventilated cavities use the product’s bundled BR 443-style resistance conventions; the calculator does not expose the full ISO 6946 air-layer table.

1.6 ISO 6946 combined construction resistance

  • Lower limit R′′T,lower: parallel paths within each bridged layer, then layers in series.
  • Upper limit R′′T,upper: bridged layers share aligned in-plane fraction vectors; paths through columns in series, columns combined in parallel.

R′′T,mean = (R′′T,lower + R′′T,upper) / 2

1.7 When Apply is blocked

  • Invalid layer ordering or cavity rules (e.g. cavity against heated space only, adjacent cavities, outermost layer a cavity, more than one well ventilated cavity).
  • R′′T,upper / R′′T,lower strictly greater than 1.5 (ISO 6946 §6.7.2.1 — simplified combined method not applicable).
  • BuildingElementGround with floor_type Suspended_floor but no single well ventilated underfloor void cavity in the stack (the calculator requires this to mark the void).
  • Other resolution errors (series stack, void geometry, or outer ventilated-cavity / heat-flow rejection).

1.8 Values written to the element (schema fields)

Apply runs only if a mass distribution class can be assigned from the layer stack (mass_distribution_class and areal_heat_capacity per schema).

Opaque, party, and adjacent fabric (not ground): Vulcan computes both thermal_resistance_construction (combined-method mean R, rounded to two decimals, after any party-half adjustment) and the corresponding u_value. The U uses two significant figures from the rounded construction R plus films, unless ISO 6946 Annex F installation corrections are active — then the Annex F-corrected U is used. When exporting or validating a final HEM FHS input, the element still has to satisfy the schema rule for thermal_resistance_construction / u_value.

BuildingElementGround: Apply writes thermal_resistance_floor_construction, and for Suspended_floor with a void split also thermal_resist_insul and height_upper_surface where derived. If the other required ground inputs are present, Vulcan also recalculates u_value from the ISO 13370 ground-floor U path. For Suspended_floor with deck / ground-insulation split, Annex F corrections are not applied in the assembly step.

BuildingElementPartyWall always uses the dwelling-side half of the layered construction. BuildingElementAdjacentConditionedSpace is only halved when it is intentionally modelled as party half-fabric. In those cases, construction resistance and areal heat capacity use the dwelling-side half.

1.9 BuildingElementGround in the assembly calculator

  • floor_type other than Suspended_floor: the full layer stack is used for ISO 6946; thermal_resistance_floor_construction is written from the combined mean R of that stack.
  • floor_type Suspended_floor: Apply is allowed only when the stack contains exactly one well ventilated cavity marking the underfloor void. Layers above the void define deck resistance (thermal_resistance_floor_construction); layers below define thermal_resist_insul (thermal resistance of insulation on the base of the void). Combined-method limits used for audit displays refer to the deck stack only when split.
  • Do not add soil or subgrade as explicit solid layers in the ground-floor assembly. The ground path is handled by the ISO 13370 calculation, and adding soil layers to thermal_resistance_floor_construction would double-count ground resistance.

2. Ground-floor U calculator (ISO 13370)

Uses BuildingElementGround fields. Steady-state ground heat transfer follows BS EN ISO 13370.

Ground elements also require psi_wall_floor_junc in the HEM FHS input. That linear junction term is not calculated by the formulas below; it is handled separately from the area-weighted ground-floor U calculation.

2.1 Fixed parameters in this path

Quantity Value
Rsi 0.17 m²·K/W
Rse 0.04 m²·K/W (equivalent-thickness construction)
λg 1.5 W/(m·K) (ground conductivity)

2.2 Characteristic length

b = 2 A / P

A = total_area (m²), P = perimeter (m).

2.3 Slab-on-ground Ug

w = thickness_walls (m).

dG = w + λg (Rsi + Rse)

Ug = (2 λg ln(π b / dG + 1)) / (π b + dG)

2.4 Slab_no_edge_insulation

Rf = thermal_resistance_floor_construction (m²·K/W).

U = 1 / (Rsi + Rf + 1/Ug)

2.5 Slab_edge_insulation

Schema: edge_insulation array of objects with type (horizontal / vertical), edge_thermal_resistance, and width or depth.

Per strip: coverage = min(1, extent / b) where extent is width or depth. Increment = Redge × coverage. The calculator adds the single largest increment across strips to Rf:

Rf,eff = Rf + max(increments), U = 1 / (Rsi + Rf,eff + 1/Ug)

2.6 Suspended_floor

Schema inputs include thermal_resistance_floor_construction (Rf), thermal_resist_insul (Rg, may be zero), height_upper_surface (h), thermal_transm_walls (thermal transmittance of void walls, same units as U), area_per_perimeter_vent (V, m²/m), shield_fact_location, and thickness_walls.

Soil term Ug as in §2.3. Series combination with ground insulation:

Ug,eff = Ug / (1 + Ug Rg) (if Rg = 0, Ug,eff = Ug)

Ux = (2 h · thermal_transm_walls) / b + (1450 × V × f × v) / b

  • f from shield_fact_location: Sheltered 0.02, Exposed 0.1, Average (or missing/invalid treated as average) 0.05.
  • v = wind speed in m/s where provided; default 5 m/s when not specified.

Ucombined = Ug,eff + max(0, Ux)

U = 1 / (2 Rsi + Rf + 1/Ucombined)

area_per_perimeter_vent: when Suspended_floor is selected and area_per_perimeter_vent is unset or zero, the geometry step auto-fills V = max(0.0015, 0.0005 × total_area / perimeter) m²/m. It is stored rounded to four decimal places, so the 0.0015 m²/m minimum is preserved. Until that default is written, a field-only calculation may show V = 0.

2.7 Heated_basement / Unheated_basement

z = depth_basement_floor (m). The calculator formula accepts zero or positive depths, while the HEM FHS schema requires depth_basement_floor to be strictly positive for basement floor types.

dT = w + z + λg (Rsi + Rf + Rse)

U = (2 λg ln(π b / dT + 1)) / (π b + dT)

For a valid HEM FHS input, both basement floor types also require thermal_resist_walls_base. Unheated_basement additionally requires thermal_transm_envi_base, thermal_transm_walls, and height_basement_walls. Those fields are required by the schema but are not part of the simplified floor U expression above.


3. Unheated-space thermal resistance Ru

3.1 Formula

For an unheated adjacent (simple) element (BuildingElementAdjacentUnconditionedSpace_Simple), the calculator can set thermal_resistance_unconditioned_space (Ru, m²·K/W):

Ru = Ai / ( Σ (Ae,j Ue,j) + 0.33 n V )

Symbol Meaning
Ai Area of the surface between the heated zone and the unheated space (typically aligned with element area)
Ae,j, Ue,j Area and U of each external envelope part of that unheated space
V Volume of the unheated space (m³)
n Air changes per hour (h⁻¹); calculator default 3

The denominator’s 0.33 n V term is the ventilation heat-loss coefficient (W/K) paired consistently with U and areas.

3.2 Table archetypes (integral garage, stairwell, corridor)

Same numeric constants as the calculator Tables mode (SAP/HEM-style archetypes).

Integral garages (m²·K/W):

Configuration Inside thermal envelope Outside thermal envelope
Single fully integral — side, end wall, and floor 0.70 0.35
Single fully integral — one wall and floor 0.55 0.25
Single partially integral (displaced forward) — side, end wall, and floor 0.60 0.30
Double fully integral — side, end wall, and floor 0.60 0.35
Double half integral — side, halves of end wall, and floor 0.35 0.25
Double partially integral (displaced forward) — part side, end, some floor 0.30 0.25

Stairwells: exposed facing wall 2.1; not exposed 2.5 m²·K/W.

Corridors: exposed + corridors above and below 0.6; exposed + above or below 0.5; not exposed + above and below 0.9; not exposed + above or below 0.7.

Applied thermal_resistance_unconditioned_space is rounded to three decimal places. The HEM FHS schema limits this value to 0–3 m²·K/W.


4. How the calculators link

  1. Assembly calculator sets thermal_resistance_construction and u_value for normal opaque / party / adjacent fabric; for BuildingElementGround it sets thermal_resistance_floor_construction (and for Suspended_floor with void split, thermal_resist_insul and height_upper_surface) and recalculates u_value when enough ISO 13370 inputs are available.
  2. Ground-floor U calculator combines thermal_resistance_floor_construction, total_area, perimeter, thickness_walls, floor_type, and the conditional fields above to produce U consistent with ISO 13370 for updating u_value where you apply it.
  3. Unheated-space calculator sets thermal_resistance_unconditioned_space; formula mode may take U from a saved or bundled wall assembly.

5. Revision note

Numerical constants and eligibility rules are tied to the shipped HEM schema and Vulcan release. Revisit this page when input_fhs.schema.json or calculator behaviour changes.