# Pipe Flow Calculator (Hazen–Williams)

> Computes the flow velocity, friction head loss and pressure drop of water in a full-flowing round pipe from flow rate, internal diameter, length and the Hazen–Williams roughness coefficient C, plus an estimated Reynolds number and a velocity check.

- Calculator id: `pipe-flow` · Category: Engineering & Automotive (`engineering`) · Tool name: `calculate_pipe_flow_hazen_williams`
- Canonical page: https://tttkmbb.com/engineering/pipe-flow · This document: https://tttkmbb.com/engineering/pipe-flow.md · JSON definition: https://tttkmbb.com/engineering/pipe-flow.json

## Purpose

Computes the flow velocity, friction head loss and pressure drop of water in a full-flowing round pipe from flow rate, internal diameter, length and the Hazen–Williams roughness coefficient C, plus an estimated Reynolds number and a velocity check.

**Use when:** You are sizing a water supply, irrigation, fire-protection or pump discharge line and need the friction loss for a given flow, or want to check that the velocity stays in the usual 0.6–2.5 m/s range.

**Do not use when:** The fluid is not water at ordinary temperature (oil, gas, glycol mixtures: use Darcy–Weisbach with the fluid's viscosity), flow is laminar, or the pipe is partly full (open-channel flow).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `flow_rate` | number |  | required | Volumetric flow rate in the unit chosen by flow_unit. (> 0, max 10000000) |
| `flow_unit` | enum: l_per_s \| l_per_min \| m3_per_s \| gpm_us |  | optional, default "l_per_s" | Unit of flow_rate (1 US gal = 3.785411784 L). |
| `pipe_diameter_mm` | number | mm | required | Internal (bore) diameter of the pipe in millimetres; nominal sizes differ from the bore, e.g. DN100 PVC PN10 has about 96 mm bore (1 in = 25.4 mm). (> 0, max 10000) |
| `pipe_length_m` | number | m | required | Length of straight pipe in metres; add equivalent lengths for fittings and valves if needed (1 ft = 0.3048 m). (> 0, max 1000000) |
| `hazen_williams_c` | number |  | optional, default 150 | Roughness coefficient: PVC/PE 150, copper 140, new steel or ductile iron (cement-lined) 130, new cast iron 130, 20-year-old cast iron 100, badly tuberculated pipe 60–80. (min 20, max 160) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `flow_m3_per_s` | number | m³/s | Flow rate converted to cubic metres per second. |
| `velocity_m_s` | number | m/s | Mean velocity Q / (π d²/4). |
| `head_loss_m` | number | m | Friction head loss over the whole pipe length, in metres of water column. |
| `head_loss_per_100m` | number | m/100 m | Friction slope expressed per 100 m of pipe. |
| `pressure_drop_kpa` | number | kPa | ρ g h_f with ρ = 1000 kg/m³ and g = 9.80665 m/s². |
| `pressure_drop_bar` | number | bar | Pressure drop in bar (1 bar = 100 kPa). |
| `pressure_drop_psi` | number | psi | Pressure drop in pounds per square inch (1 psi = 6.894757 kPa). |
| `reynolds_number_estimate` | number |  | Re = v d / ν with ν = 1.0e-6 m²/s (water at 20 °C); Hazen–Williams is only valid for turbulent flow (Re above about 4000). |
| `velocity_check` | string |  | Comparison with the typical 0.6–2.5 m/s design range for water pipes. |

## Formula

`Q = flow_m3_per_s, d = pipe_diameter_mm / 1000, L = pipe_length_m, C = hazen_williams_c; velocity_m_s = Q / (π d² / 4); head_loss_m = 10.67 × L × Q^1.852 / (C^1.852 × d^4.87); pressure_drop_kpa = 1000 × 9.80665 × head_loss_m / 1000; reynolds_number_estimate = velocity_m_s × d / 1e-6`

Hazen–Williams empirical equation in SI form, calibrated for water at about 5–25 °C in turbulent flow with velocities below roughly 3 m/s; outside these conditions (or for other fluids) Darcy–Weisbach with the Colebrook friction factor is more accurate. Minor losses from fittings are not included.

## Data Sources

- Wikipedia – Hazen–Williams equation — https://en.wikipedia.org/wiki/Hazen%E2%80%93Williams_equation (reference, retrieved 2026-09-24)
- Wikipedia – Reynolds number — https://en.wikipedia.org/wiki/Reynolds_number (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/pipe-flow?flow_rate=…&pipe_diameter_mm=…&pipe_length_m=…`
- `POST https://tttkmbb.com/api/v1/calculate/pipe-flow` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/pipe-flow · OpenAPI operationId `calculate_pipe_flow_hazen_williams` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "pipe-flow", "inputs": {…}}`

## Example

- 10 L/s through 100 m of 100 mm PVC (C 150): inputs `{"flow_rate":10,"flow_unit":"l_per_s","pipe_diameter_mm":100,"pipe_length_m":100,"hazen_williams_c":150}` → `{"flow_m3_per_s":0.01,"velocity_m_s":1.2732,"head_loss_m":1.459,"head_loss_per_100m":1.459,"pressure_drop_kpa":14.308,"pressure_drop_bar":0.1431,"pressure_drop_psi":2.075,"reynolds_number_estimate":127324,"velocity_check":"Within the typical 0.6–2.5 m/s design range"}`
- 400 US gpm through 300 m of 150 mm steel (C 130): inputs `{"flow_rate":400,"flow_unit":"gpm_us","pipe_diameter_mm":150,"pipe_length_m":300,"hazen_williams_c":130}` → `{"flow_m3_per_s":0.025236,"velocity_m_s":1.4281,"head_loss_m":4.3979,"head_loss_per_100m":1.466,"pressure_drop_kpa":43.128,"pressure_drop_psi":6.255}`

```
GET https://tttkmbb.com/api/v1/calculate/pipe-flow?flow_rate=10&flow_unit=l_per_s&pipe_diameter_mm=100&pipe_length_m=100&hazen_williams_c=150
```

## Limitations

The fluid is not water at ordinary temperature (oil, gas, glycol mixtures: use Darcy–Weisbach with the fluid's viscosity), flow is laminar, or the pipe is partly full (open-channel flow). Hazen–Williams empirical equation in SI form, calibrated for water at about 5–25 °C in turbulent flow with velocities below roughly 3 m/s; outside these conditions (or for other fluids) Darcy–Weisbach with the Colebrook friction factor is more accurate. Minor losses from fittings are not included. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Which C value should I use?**

C describes the pipe's interior smoothness: about 150 for new plastic (PVC, PE), 140 for copper, 130 for new steel or cement-lined ductile iron, and 100 or lower for old, corroded cast iron. Designers often use 120–130 for aged metal mains.

**Does the result include fittings and valves?**

No, only straight-pipe friction. Add the equivalent length of each fitting to pipe_length_m, or compute minor losses separately with K × v² / (2g).

**Why is the flow velocity limited to about 0.6–2.5 m/s?**

Below 0.6 m/s sediment settles and air pockets persist; above about 2.5 m/s friction loss, noise, erosion and water-hammer pressure rise quickly. Pump suction lines are usually kept below about 1.5 m/s.

## Related

- [Pressure Converter](https://tttkmbb.com/conversion/pressure.md) — Convert the pressure drop between kPa, bar, psi and metres of water.
- [Volume Converter](https://tttkmbb.com/conversion/volume.md) — Convert between litres, cubic metres and gallons.
- [Horizontal Tank Volume Calculator](https://tttkmbb.com/engineering/horizontal-tank-volume.md) — Liquid volume in the tank the pipe feeds or drains.
