Mesh construction, steady-state heat transfer, moisture screening and dynamic estimates.
On this page
The Mesh
Both the standalone editor (2D) and the Rhino plugin (3D) discretize the geometry into
a graded rectilinear grid: a structured grid of rectangular (2D) or
box-shaped (3D) cells whose spacing varies along each axis. The same mesher is used in
both.
Every interface is a grid line
In 2D, every material interface (layer and fill boundaries, stud edges, profile
flanges and webs) becomes a grid line in both directions. In 3D, every axis-aligned
face of the Rhino volumes, plus each volume's bounding planes, becomes a grid plane.
As a result each cell holds exactly one material, and thin parts are never skipped or
widened by where the grid happens to fall: a 1 mm steel plate is resolved at its exact
thickness even with a 10 mm cell size. Faces closer together than a small tolerance
are merged, so modelling noise does not create sliver cells.
Grading
Next to an interface, the cell size starts at the width of the thinner neighbouring
part (so a 1.5 mm strip gets roughly 1.5 mm neighbours), but never smaller than 1/16 of
the target size. Away from the interface it grows by at most 30 % from one cell to the
next until it reaches the target size. Thick, uniform regions are meshed evenly at the
target size. This puts small cells where temperature gradients are steep and keeps
the cell count low everywhere else.
Recommended cell size
The recommended (Auto) size is a tenth of the characteristic thickness, at
most 10 mm, rounded down to 1, 2, 2.5 or 5 × 10ⁿ. In 2D the characteristic
thickness is the total construction thickness. In 3D it is the smallest extent of the
material volumes along an axis on which the geometry changes; an axis without internal
faces (such as the length of an extruded section) does not count. Thin parts do not
need to be considered, because the mesh resolves every interface anyway. In the
standalone editor, the mesh size button turns red when you choose a size coarser than
recommended.
Voxelization in 3D
Each 3D cell gets the material or boundary condition of the highest-priority volume
that contains the cell's centre (see layer order). Cells
inside no volume are empty and act as adiabatic (no heat flow). Sloped faces add no
grid planes; they are sampled by the cell centres.
Mesh independence check
ISO 10211 requires that doubling the number of subdivisions changes the heat flow by
less than 1 %. With the check turned on (Verify in Rhino, the mesh check
toggle in the standalone editor), Koala solves the model again at half the cell size
and warns if the U-value changes by 1 % or more. The refined run takes roughly 4× the
time in 2D and has up to 8× the cells in 3D.
Because thin parts are resolved exactly, coarse grids are now far more accurate than
with a uniform voxel grid. Results on the validation models:
Model
Cell size
Uniform grid (before)
Graded grid
3D test case
20 mm
U = 1.107 W/m²K (9 % off)
U = 1.225 W/m²K (0.3 % off)
3D test case, fine reference
5 mm
1.2226 W/m²K
1.2223 W/m²K
ISO 10211 case 2 (reference 9.5 W/m)
2.5 mm (recommended)
9.492 W/m at 0.5 mm, 9 s
9.511 W/m, about 0.1 s
How the Solver Works
The 2D and 3D analyses share one numerical core. For steady-state heat transfer, Koala
solves the heat conduction equation
Temperatures are calculated at the grid nodes (the cell corners). Each cell connects
neighbouring nodes along every axis with a thermal conductance
\(G = \lambda A / L\), where \(A\) is the share of the cell face belonging to the node
pair and \(L\) the cell length along that axis. Summing the conductances of all cells
gives a sparse, symmetric system \([K]\{T\} = \{F\}\) with 5 entries per row in 2D and 7
in 3D. Because conductances are formed per cell, a sharp contrast such as steel
(λ ≈ 50 W/mK) next to insulation (λ ≈ 0.035 W/mK) is represented exactly at the
interface.
Boundary conditions
Surface films: Surface nodes on a
boundary are connected to the boundary air temperature through a conductance
\(A / R_s\) (Rsi or Rse), where \(A\) is the node's share of the surface. Uneven
spacing is accounted for.
Adiabatic edges: In 2D, the top
and bottom edges of the repeating unit are adiabatic (symmetry planes). In 3D, any
material face that touches neither another material nor a boundary is
adiabatic.
Floating parts: Parts that are not
connected to any boundary through conduction have no defined temperature. They are
reported and left out instead of making the solve fail.
Solving the system
When the problem fits in memory, the system is solved directly with a
banded Cholesky factorization. The nodes are ordered with the largest grid direction
outermost, which keeps the band narrow. A direct solve is exact up to rounding, and
its cost does not depend on the conductivity contrast or a convergence tolerance.
Larger 3D grids fall back to an iterative conjugate gradient solver
with an incomplete Cholesky preconditioner; the console warns if it does not converge.
Typical 2D sections solve in a fraction of a second; 3D grids of around 3 million nodes
take a few seconds.
U-value and heat flux
The heat flow \(Q\) is summed over every surface film on the interior side, and the
U-value follows as
\[ U = \frac{Q}{A \, (T_{i} - T_{e})} \]
where \(A\) is the interior contact area (in 3D, the area of all material faces
touching interior boundaries). The heat flux view shows \(q = -\lambda \nabla T\) per
cell.
Moisture (Glaser method)
After the temperatures are known, the saturation vapour pressure is calculated at every
node. A second steady-state system of the same form is solved for the vapour pressure,
using the vapour permeability \(\delta_{air} / \mu\) of each material and the relative
humidity of the boundaries. Relative humidity is the ratio of the two pressures; nodes
where the vapour pressure would exceed saturation indicate a condensation risk.
Dynamic properties (ISO 13786)
For dynamic analysis in the standalone editor, the construction is treated as a
multi-layer system responding to a sinusoidal temperature wave with a period of 24
hours. Each layer is represented by a transfer matrix \(Z\) that relates
temperature and heat flux on one side to the other:
Multiplying these matrices for all layers gives the periodic thermal
transmittance \(Y_{mn}\), which yields the decrement factor and time shift.
Mesh verification and reference cases
Mesh refinement evaluates sensitivity to grid resolution. In Rhino, Verify repeats the calculation at half the target cell size. Review the reported changes in heat flow and any other quantities used by the assessment.
The validation page documents the ISO 10211 reference cases and the THERM comparison. Reference-case verification and refinement of a project model serve different purposes; both should be reviewed within the scope of the calculation.