Poiseuille flow calculator
A 1 m tube of radius 0.01 m, carrying a fluid of viscosity 0.001 Pa·s under a 1000 Pa pressure difference, passes 0.0039269908 m³/s. Enter radius, length, viscosity and pressure drop to get the steady laminar flow. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Radius
- 0.01
- Length
- 1
- Dynamic
- 0.001
- Pressure diff
- 1,000
- Flow rate
- 0.0039269908
- Precision
- 10
This Poiseuille flow calculator returns the laminar volumetric flow rate in a circular pipe from four inputs: internal radius r, pipe length L, dynamic viscosity μ, and pressure difference ΔP. The engine applies the classic Hagen–Poiseuille law Q equals pi times r to the fourth times ΔP, all divided by eight times μ times L, which is the exact integrated result for steady, fully developed, incompressible Newtonian flow under a constant axial pressure gradient.
What Poiseuille flow means and what you get back
Hagen–Poiseuille flow is the steady laminar discharge of an incompressible Newtonian fluid through a straight circular tube of constant radius when end effects are neglected and the velocity profile is fully developed. Integrating the parabolic axial velocity over the cross section yields the closed-form volumetric flow rate Q equals pi r to the fourth ΔP over eight μ L. The fourth-power dependence on radius is the engineering reason small changes in tube diameter dominate resistance: doubling r multiplies Q by sixteen at fixed pressure, length, and viscosity.
Zero radius is valid and simply yields zero flow; a negative pressure difference returns a negative signed Q so reverse driving pressure is representable. If you need mass flow, multiply Q by density in a separate step; if you need turbulent Darcy–Weisbach head loss, Reynolds number, or non-Newtonian rheology, use tools dedicated to those models.
Where laminar Poiseuille Q fits in study, lab work, and software
Students meet Hagen–Poiseuille flow when a fluid-mechanics textbook integrates the Navier–Stokes equations in a pipe, when a physiology lab estimates blood flow through a small vessel under a known pressure head, or when a chemical-engineering problem asks for capillary throughput of a Newtonian fluid. Teachers can pre-generate answer keys for modest numbers without trusting opaque calculator apps that silently switch unit systems or drop the fourth power on radius.
Developers call the same contract from scripts to seed deterministic test vectors for microfluidics simulators, to normalize user-entered capillary data before a larger thermofluid model, or to satisfy programming-challenge statements that demand Q rather than a hand-waved sketch. Lab and field engineers use the formula for quick checks when a manometer reports ΔP and the tube schedule diameter is known. Product and education tools use it when a learner types radius, length, viscosity, and pressure drop and the UI must show discharge with a clean formula string.
What you can do with it
Homework and capillary lab checks
Compute laminar Q from measured tube radius, length, fluid viscosity, and manometer ΔP before writing a lab report or Poiseuille problem set.
Microfluidics and process sizing
Estimate Newtonian laminar throughput in small circular channels when designing capillaries, IV lines, or low-Reynolds process tubing.
FAQ
What does the Poiseuille flow calculator cost?
It is free in your browser on this page.
What formula is used for the flow rate?
Hagen–Poiseuille: Q = π r⁴ ΔP / (8 μ L), for steady laminar flow of an incompressible Newtonian fluid in a circular pipe.
What happens if viscosity is zero?
Zero viscosity makes the formula divide by zero; negative viscosity is non-physical for this model.
Does this tool handle turbulent pipe flow?
No. It only evaluates laminar Hagen–Poiseuille discharge. For turbulent head loss use a Darcy–Weisbach or friction-factor tool.
Why are results rounded to a precision?
Default precision is 10 decimal places; you can set precision from 0 to 15.
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/thermo/poiseuille-flow \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"radius":0.01,"length":1,"viscosity":0.001,"pressure_diff":1000}'const res = await fetch("https://api.kit.forhosting.com/thermo/poiseuille-flow", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"radius": 0.01,
"length": 1,
"viscosity": 0.001,
"pressure_diff": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/thermo/poiseuille-flow",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"radius": 0.01,
"length": 1,
"viscosity": 0.001,
"pressure_diff": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/thermo/poiseuille-flow", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"radius":0.01,"length":1,"viscosity":0.001,"pressure_diff":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"radius":0.01,"length":1,"viscosity":0.001,"pressure_diff":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/thermo/poiseuille-flow", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"radius": 0.01,
"length": 1,
"viscosity": 0.001,
"pressure_diff": 1000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "thermo.poiseuille_flow",
"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_radius | 1000000000000000 |
max_abs_length | 1000000000000000 |
max_abs_viscosity | 1000000000000000 |
max_abs_pressure_diff | 1000000000000000 |
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
Zero or negative viscosity is rejected because the formula divides by μ; negative radius and non-positive length are likewise invalid_input.
What Hagen–Poiseuille flow means and what the response contains
This calculator returns the normalized radius, length, viscosity, and pressure_diff you supplied, the product flow_rate rounded to the requested precision, the precision used, a method tag hagen_poiseuille, and a short formula string. There is no CFD mesh, no empirical friction-factor table, and no random sampling: the engine either evaluates the analytic expression inside the supported magnitude range or rejects the input with invalid_input. Rejected cases include missing fields, non-finite values, magnitudes above the documented ceiling, negative radius, zero or negative length, and zero or negative viscosity, because those cases make Q undefined or non-physical for this model.
How radius, length, viscosity, and pressure difference are read
Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong discharge. Radius must be non-negative; length must be strictly positive because it sits in the denominator; viscosity must be strictly positive for the same reason and because zero viscosity would make Q infinite. The preferred fields are radius for the internal pipe radius, length for the axial tube length, viscosity for the dynamic (absolute) viscosity, and pressure_diff for the driving pressure difference P_in minus P_out, but aliases r, R, pipe_radius, and inner_radius for radius, L, pipe_length, and tube_length for length, mu, dynamic_viscosity, eta, and common Greek symbols for viscosity, and delta_p, dP, pressure_difference, and pressure_drop for pressure_diff are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Pressure_diff may be positive or negative; a negative drop returns a negative flow_rate so reverse drive can be represented without a separate direction flag. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for all numeric outputs, defaulting to ten and capped at fifteen so JSON goldens stay stable. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing Q equals pi r to the fourth ΔP over eight μ L yourself.
Where laminar Poiseuille Q fits in study, lab work, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result. Pair it with volumetric flow rate Q equals A times v when you already know mean speed, and with other thermofluid endpoints when you are building a small lab of free, deterministic engineering helpers, keeping all four inputs in consistent units so the returned Q is meaningful without hidden conversion steps.
Integration use cases
Deterministic test fixtures
Generate reproducible flow_rate values for unit tests, property checks, and CI assertions in microfluidics or thermofluid software.