Reynolds number calculator
A fluid of 1000 kg/m³ moving at 2 m/s through a 0.05 m pipe, with a viscosity of 0.001 Pa·s, gives a Reynolds number of 100000, which points to turbulent flow. Enter the four values to get Re and a regime hint. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Fluid density ρ
- 1,000
- Speed
- 2
- Characteristic length L
- 0.05
- Dynamic
- 0.001
- Reynolds number
- 100,000
- Re
- 100,000
- Regime hint
- turbulent
The Reynolds number compares inertial forces to viscous forces in a flow and is the classic dimensionless group used to predict whether a regime tends to stay smooth or become chaotic. Given fluid density ρ, characteristic speed V, a length scale L such as a pipe diameter, and dynamic viscosity μ, the definition is Re equals ρ times V times L divided by μ. Students checking homework, lab instructors building answer keys, process and HVAC engineers sketching pipe networks, and simulation authors validating non-dimensional inputs all need the same four quantities and one reproducible result.
What Re = ρVL/μ means and which quantities you need to send
In introductory fluid mechanics the Reynolds number is the ratio of inertial to viscous effects: density times velocity times a characteristic length, all divided by dynamic viscosity. Density is mass per volume of the fluid, speed is a representative bulk or free-stream velocity, length is the scale that sets the geometry—pipe diameter for internal flow, chord or hydraulic diameter for many external and channel cases—and dynamic viscosity is the absolute viscosity in force-time over area (pascal-seconds in SI).
Search intent clusters around phrases such as reynolds number calculator, Re equals rho V L over mu, laminar versus turbulent pipe flow, fluid mechanics homework check, and dimensionless Reynolds from density and viscosity. People want a numeric answer they can pin against a worksheet, embed in a lab notebook, or feed into a larger pipeline—not only a reminder that the formula exists.
Units stay consistent with whatever coherent basis you chose: kilograms per cubic metre with metres per second, metres, and pascal-seconds yield a true dimensionless Re; any coherent set works if you keep the product dimensionally honest and never mix inconsistent systems without converting first.
What you can do with it
Homework and pipe-flow lab checks
Students and graders confirm dimensionless Re from density, speed, diameter, and viscosity, with clear rejection when viscosity is zero or a field is missing.
Quick laminar/turbulent sketches
Engineers and educators get structured Re plus a soft regime hint for internal-flow sketches without standing up a full CFD stack.
FAQ
Is the Reynolds number calculator free?
The browser tool runs free on your device.
Which units should I use?
Any coherent set works. SI is common: kg/m³, m/s, m, and Pa·s. Mixing inconsistent units without converting produces a meaningless number, not a true dimensionless Re.
Does it tell me whether the flow is laminar or turbulent?
It adds a regime hint next to the number, such as turbulent for a Reynolds number of 100000. Treat it as a guide for quick sketches, since the actual transition also depends on the geometry and the conditions of the flow.
Which length should I use?
Use the length that sets the geometry of your case: the pipe diameter for flow inside a pipe, or the chord or hydraulic diameter for many channel and external flows. Keep it in the same unit system as the other values.
What happens if the viscosity is zero?
The calculation is refused with a clear message, because dividing by zero viscosity has no meaning and the Reynolds model breaks down when viscous forces vanish.
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/reynolds-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"density":1000,"speed":2,"length":0.05,"viscosity":0.001}'const res = await fetch("https://api.kit.forhosting.com/thermo/reynolds-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"density": 1000,
"speed": 2,
"length": 0.05,
"viscosity": 0.001
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/thermo/reynolds-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"density": 1000,
"speed": 2,
"length": 0.05,
"viscosity": 0.001
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/thermo/reynolds-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"density":1000,"speed":2,"length":0.05,"viscosity":0.001}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"density":1000,"speed":2,"length":0.05,"viscosity":0.001}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/thermo/reynolds-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"density": 1000,
"speed": 2,
"length": 0.05,
"viscosity": 0.001
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "thermo.reynolds_number",
"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.
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
This capacity multiplies density, speed, and length, divides by viscosity, rejects zero viscosity with a clear invalid_input error, and returns structured JSON with Re, the echoed inputs, formula, method, and a soft regime hint.
What Re = ρVL/μ means and which quantities you need to send
Delivering density, speed, length, viscosity, reynolds_number, Re, formula, method, and regime_hint as JSON makes the result easy to paste into notes, diff in automated tests, or reuse across languages without reimplementing the arithmetic.
How this calculator validates input and applies Re = ρVL/μ
Numeric strings that parse to finite numbers are accepted so forms and CSV-style pipelines can pass values without an extra cast. There is no unit-conversion service, no CFD mesh, and no temperature-dependent viscosity table; this is ideal constant-property Re from four known quantities. Send a JSON body with required fields density, speed, length, and viscosity. Every field must be finite: missing fields, empty strings, non-numeric text, NaN, and Infinity all fail immediately with invalid_input before any result is returned, and failed validation is not charged. Aliases are supported: rho, fluid_density for density; velocity, v, flow_speed for speed; characteristic_length, L, diameter, D for length; mu, dynamic_viscosity, eta for viscosity. Viscosity must not be zero: a zero dynamic viscosity is always rejected as invalid_input because division by zero is undefined and the Reynolds model collapses when viscous forces vanish. After validation, the engine multiplies density, speed, and length, divides by viscosity, and rounds to a stable decimal precision so the same input always yields the same JSON across JavaScript engines. A soft regime_hint labels common internal-flow bands—below about two thousand three hundred as laminar, between that and about four thousand as transitional, and above as turbulent—purely as an educational convenience; it is not a multiphase or free-surface classifier and does not replace engineering judgment for complex geometries. The same pure function powers the free in-browser tool and the API path.
Practical use, limits, pricing, and delivery channels
Use the browser tool when you want an immediate Re equals rho V L over mu check while grading homework, verifying a pipe-flow lab, sketching whether a duct is likely laminar or turbulent, or sanity-checking the non-dimensional inputs of a simulation. Choose units consistently—if density is in kilograms per cubic metre, speed in metres per second, length in metres, and dynamic viscosity in pascal-seconds, Re is dimensionless and ready for textbook comparison. There is no language model, no external fluid-property service, and no randomness, so the capacity is safe to pin in continuous-integration checks and reproducible lesson materials. Each successful request is one billable item at $0.002; failed validation does not consume balance. Results are fully deterministic: the same four inputs always yield the same reynolds_number, the same Re alias, and the same formula and method labels. Wire the endpoint into fluid-mechanics drills, contest answer checkers, HVAC sketch tools, or preprocessing steps where you already prefer explicit domain errors—such as rejecting zero viscosity—over opaque black-box widgets that cannot explain why a bad input was refused.
Integration use cases
Deterministic fixtures for fluid tests
Pipelines that seed unit tests or interactive science demos can call a pure Re=ρVL/μ oracle instead of reimplementing Reynolds arithmetic in every language.
Technical questions
How do I calculate the Reynolds number with this tool?
Send JSON with density, speed, length, and viscosity (for example water-like values ρ=1000, V=2, L=0.05, μ=0.001). The response includes reynolds_number (and Re), formula Re=ρVL/μ, and a soft regime_hint.
What happens if viscosity is zero?
The request fails with invalid_input. Zero dynamic viscosity would divide by zero; the engine rejects it and does not charge the call.
Is Re the same as the regime_hint field?
No. reynolds_number is the exact dimensionless value. regime_hint is only an educational pipe-flow band (laminar / transitional / turbulent) and is not a full flow-regime classifier.