Every equation, constant and threshold the calculator uses, and the limits they impose.
Nothing here is hidden or fitted. This page states the calculation exactly as implemented, so you can reproduce any reported figure by hand and decide whether the assumptions hold for your case.
Density from the ideal gas law, viscosity from Sutherland's law, and the speed of sound from the isentropic relation:
ρ = p / (R · T)
μ = μ₀ · (T / T₀)^1.5 · (T₀ + S) / (T + S)
a = √(γ · R · T)
Ma = v / a
with p in Pa, T in K, and:
| Constant | Value |
|---|---|
R — specific gas constant, dry air | 287.058 J/(kg·K) |
γ — ratio of specific heats | 1.4 |
μ₀ — reference viscosity | 1.716 × 10⁻⁵ Pa·s |
T₀ — reference temperature | 273.15 K |
S — Sutherland constant | 111 K |
g — standard gravity, used for mmH₂O | 9.80665 m/s² |
Air is treated as dry. Humidity is not an input and is not inferred: at 20 °C and 50% RH the real density is roughly 0.5% below the dry value the tool reports, which is immaterial for a preliminary check but is a real bias, always in the same direction.
The Mach number is reported for transparency, not applied — the calculation is
incompressible throughout. That is the reason for the warning at Ma ≥ 0.1.
Circular ducts are solved directly:
A = π · D² / 4
v = Q / A
Dₕ = D
The friction calculation and the reported velocity both use D and v, so there is nothing
to reconcile.
A rectangular duct produces two areas and two velocities, and the tool keeps them deliberately separate:
A = w · h actual area
Dₕ = 2 · w · h / (w + h) hydraulic diameter
Dₑ = 1.3 · (w · h)^0.625 / (w + h)^0.25 Huebscher equivalent diameter
Aₑ = π · Dₑ² / 4 equivalent circular area
v = Q / A actual velocity — what you see
vₑ = Q / Aₑ equivalent velocity — what friction uses
The Huebscher relation gives the diameter of a circular duct with the same friction loss at
the same airflow. Because Aₑ is smaller than A for any real rectangular duct, vₑ is
always higher than v. This is not an error: the friction loss is solved in the equivalent
circular duct, while the velocity you are shown, judged against the advisory band, and use for
velocity pressure is the real duct velocity.
The equivalent-diameter approach degrades as ducts get flatter, which is what the aspect-ratio warning above 4 is marking.
Two Reynolds numbers are computed, and they are used for different things:
Re = ρ · v · Dₕ / μ reported, and classifies the regime
Re_friction = ρ · vₑ · Dₑ / μ solves the friction factor
For circular ducts they are identical. For rectangular ducts Re_friction is the larger of
the two. The regime badge is classified on the reported Reynolds number:
| Regime | Range |
|---|---|
| Laminar | Re < 2300 |
| Transitional | 2300 ≤ Re < 4000 |
| Turbulent | Re ≥ 4000 |
The Darcy friction factor (not the Fanning factor, which is one quarter of it), solved on
Re_friction:
Re_friction < 2300: f = 64 / Re_friction
otherwise: f = 0.25 / [ log₁₀( ε / (3.7 · Dₑ) + 5.74 / Re_friction^0.9 ) ]²
The second form is the Swamee-Jain explicit approximation to the Colebrook-White
equation. It is an approximation with no iteration, valid to roughly ±1% against Colebrook
over 10⁻⁶ ≤ ε/D ≤ 10⁻² and 5000 ≤ Re ≤ 10⁸ — comfortably inside the range of ordinary
ventilation ductwork, and outside it in the transitional band, which is exactly what that
warning marks. There is no explicit correlation in 2300–4000; the turbulent form is applied
and flagged rather than refused.
ε is the absolute roughness in metres — the preset value from card 03, converted from mm.
R = f · ρ · vₑ² / (2 · Dₑ) friction rate, Pa/m
Δp_straight = R · L Pa
q = ½ · ρ · v² velocity pressure, Pa (actual velocity)
Δp_fittings = Σ K · q Pa
Δp_total = Δp_straight + Δp_fittings Pa
Δp (mmH₂O) = Δp_total / 9.80665
Written as one expression, this is the Darcy-Weisbach equation with a fitting term:
Δp = f · (L / Dₑ) · ½ρvₑ² + Σ K · ½ρv²
Note which velocity sits in each term. The friction term runs on the equivalent velocity
and diameter; the fitting term runs on the actual velocity pressure. For a circular duct
the two collapse into the familiar Δp = (f·L/D + Σ K) · ½ρv². For a rectangular duct they do
not, and a hand-check that uses the actual velocity in the friction term will not reproduce
the tool's number.
The calculation kernel is covered by unit tests that pin the worked results to within ±0.5% of independently computed reference values. That tolerance describes the implementation, not the physics: it says the code solves these equations correctly, not that these equations predict your duct.