# Method and assumptions

Source: https://meptools.com/tools/duct-pressure-drop-calculator/docs/method/

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.

## Air properties

Density from the ideal gas law, viscosity from Sutherland's law, and the speed of sound from
the isentropic relation:

```text
ρ = 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`.

## Geometry

**Circular ducts** are solved directly:

```text
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.

### Rectangular ducts and the Huebscher equivalent diameter

A rectangular duct produces **two** areas and **two** velocities, and the tool keeps them
deliberately separate:

```text
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.

## Reynolds number and flow regime

Two Reynolds numbers are computed, and they are used for different things:

```text
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        |

## Friction factor

The **Darcy** friction factor (not the Fanning factor, which is one quarter of it), solved on
`Re_friction`:

```text
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.

## Pressure drop

```text
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:

```text
Δ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.

## Assumptions and limits, stated plainly

- **One run, one size.** A single duct of constant cross-section. No networks, no branches
  carrying different flows, no index-run selection.
- **Steady, incompressible, isothermal, fully-developed flow.** No heat transfer, no density
  change along the run, no entry-length effects.
- **Dry air.** Humidity is neither an input nor inferred.
- **Static regain and dynamic-pressure recovery are ignored.** Σ K losses are additive with
  no credit for velocity-pressure recovery at expansions.
- **Rigid duct only.** There is no flexible-duct correction; a flexible run's friction is
  substantially higher than the equivalent rigid duct and is not modelled.
- **No leakage, no elevation term, no fan curve.** Air in equals air out, and the result is a
  loss across the run, not a system operating point.
- **K values are referenced to this run's actual velocity pressure.** A published K referenced
  to another velocity must be converted before entry.
- **The friction factor is an approximation**, and in the transitional band an acknowledged
  poor one.

## Tolerance

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.
