Broad-crested weir calculator
A 1.5 m crest under 0.3 m of head forms critical flow at a depth of 0.2 m, two thirds of the head. Enter crest width, upstream head and gravity to get the theoretical discharge, critical depth and velocity. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Crest width
- 1.5
- Upstream head
- 0.3
- Gravity
- 9.81
- Critical depth
- 0.2
- Critical velocity
- 1.4007141036
- Discharge
- 0.4202142311
- Flow rate
- 0.4202142311
A broad-crested weir is a hydraulic control whose crest is long enough in the flow direction for the water surface to become parallel to the crest and for critical flow to form. This calculator takes the rectangular crest width, the upstream head measured above the crest, and gravitational acceleration, then returns the theoretical volumetric discharge — the flow rate Q — from critical-flow theory. The identity is Q equals (two thirds) to the three-halves times width times the square root of g times head to the three-halves, which is the same as width times critical depth times critical velocity when critical depth is two thirds of the head. Keep length and time units consistent so Q is volume per time.
Critical-flow theory for a broad-crested weir
A broad-crested weir is a raised sill or rectangular control whose crest is long in the streamwise direction, typically several times the upstream head, so that the free surface can become parallel to the crest and a critical-flow section can establish itself over that crest. Hydraulic textbooks contrast this geometry with a sharp-crested weir, where a thin plate throws a free nappe and the discharge coefficient is read from an empirical rating.
Over a broad crest the control is theoretically critical flow: the Froude number equals one, which means the depth-averaged velocity equals the square root of gravitational acceleration times the local depth. Volumetric discharge Q is the product of the rectangular crest width b, the critical depth, and the critical velocity, which rearranges at once to Q equals (two thirds) to the power three-halves times b times the square root of g times H to the three-halves. This calculator evaluates that identity with a theoretical discharge coefficient of one.
It does not fold in a laboratory Cd, a side-contraction factor, roughness, or a drowned-flow reduction; those effects belong on a site-specific rating curve. If the crest is so short that the nappe separates, the structure behaves as a sharp-crested weir and this formula does not apply. The coefficient (two thirds) to the three-halves is about zero point five four four three and is returned beside the discharge so you can check the closed form against the staged critical-depth path.
Where the theoretical weir discharge is used
Irrigation and drainage designers use a broad-crested weir as a robust, debris-tolerant control that also meters canal discharge when the crest is long enough for critical flow. A first-pass estimate of Q from width, head, and g sizes the opening before a laboratory Cd or a field rating is available, and it is honest about omitting drowned-flow and contraction corrections until those data exist.
Teaching labs ask students to compare measured discharge with the theoretical (two thirds) to the three-halves identity and to discuss why a real Cd is slightly less than one; a deterministic oracle lets instructors generate keys for arbitrary b, H, and g without a full computational-fluid package. Field engineers checking a stilling-basin or spillway crest during a high-water event can convert a staff reading above the crest into a volume per time when the structure is known to be modular (free, not submerged).
Keep requests small, pin the rounded discharge in tests, and you get reproducible weir flow rates for homework, LMS plugins, and edge workers without standing up a hydraulics solver of your own.
What you can do with it
Canal and irrigation design checks
Estimate modular discharge over a rectangular broad-crested weir from design width, operating head, and local g before a laboratory rating is available.
Hydraulics homework and lab keys
Generate deterministic Q, critical depth, and critical velocity for arbitrary b, H, and g so students can check the (2/3)^{3/2} identity against flume data.
FAQ
What formula does the broad-crested weir calculator use?
The discharge coefficient is one; laboratory Cd, contractions, and drowning are not applied.
Why must crest width, upstream head, and gravity be positive?
A non-positive width, head, or g does not define a physical critical-flow discharge in this model.
Which units should I use for a broad-crested weir?
Any consistent length and time units. Metres with g in m/s² give Q in m³/s; feet with g in ft/s² give Q in ft³/s. The calculator does not convert units.
How is a broad-crested weir different from a sharp-crested weir?
A broad crest is long enough for the surface to become parallel to the crest so critical flow controls the discharge. A sharp crest throws a free nappe; its Q uses an empirical Cd, not this (2/3)^{3/2} identity.
Does the result include a discharge coefficient or drowned flow?
No. It uses the theoretical coefficient of one, with no laboratory discharge coefficient, side contraction, roughness or drowned-flow reduction. Those effects belong on a site-specific rating curve once you have field or laboratory data.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/phys/broad-crested-weir \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"crest_width":1.5,"upstream_head":0.3,"gravity":9.81}'const res = await fetch("https://api.kit.forhosting.com/phys/broad-crested-weir", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"crest_width": 1.5,
"upstream_head": 0.3,
"gravity": 9.81
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/broad-crested-weir",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"crest_width": 1.5,
"upstream_head": 0.3,
"gravity": 9.81
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/broad-crested-weir", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"crest_width":1.5,"upstream_head":0.3,"gravity":9.81}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"crest_width":1.5,"upstream_head":0.3,"gravity":9.81}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/broad-crested-weir", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"crest_width": 1.5,
"upstream_head": 0.3,
"gravity": 9.81
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.broad_crested_weir",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs_crest_width | 1000000000000 |
max_abs_upstream_head | 1000000000000 |
max_abs_gravity | 1000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Every input must be a strictly positive finite number; missing fields, zero, negatives, infinities, and non-numeric tokens fail with invalid_input and are not billed. Successful API calls cost $0.002.
Critical-flow theory for a broad-crested weir
Specific energy measured from the crest then relates the upstream head H to that critical depth y_c by H equals y_c plus the velocity head y_c over two, so y_c equals two thirds of H when the head already includes the approach-velocity contribution or when the upstream reservoir is wide enough that the approach velocity is negligible.
Inputs, units, response fields, and invalid values
Zero and negative values fail because a weir of zero width, a non-positive head, or non-positive gravity does not define a physical discharge in this model. Magnitudes above one trillion are rejected as outside the supported range. Keep units consistent: metres with metres per second squared yield cubic metres per second; feet with feet per second squared yield cubic feet per second. Failed validation is not billed. POST a JSON body with three required strictly positive finite numbers: crest_width, the rectangular crest width b; upstream_head, the energy head H measured above the crest; and gravity, gravitational acceleration g. Preferred names are those canonical fields; aliases b, width, B, weir_width, and crest are accepted for width, aliases H, head, h, water_head, and approach_head for the head, and aliases g, g_accel, and gravitational_acceleration for gravity, so spreadsheets and typed forms can reuse the same contract. Each value may arrive as a JSON number or as a decimal numeric string, including scientific notation; booleans, objects, arrays, empty strings, NaN, and infinities are rejected. On success the body echoes the three inputs rounded to twelve decimal places, plus critical_depth y_c equals two thirds of H, critical_velocity equals the square root of g times y_c, discharge and flow_rate as the same volumetric Q, coefficient (two thirds) to the three-halves, a formula string, and method broad_crested_weir_critical_flow.
Integration use cases
Open-channel software fixtures
Pin expected weir discharge in unit tests for SI and imperial units, including non-Earth gravity, without embedding a full hydraulics library.
Technical questions
What does the broad-crested weir calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.