Understanding the Relationship Between Velocity and Flow Rate
In fluid dynamics and engineering, determining the volumetric flow rate from a known velocity is a fundamental calculation. Whether you are sizing HVAC ducts, designing water piping systems, or analyzing industrial fluid transport, understanding how velocity translates to volume is critical for system efficiency and safety.
The Flow Rate Formula
The calculation performed by this tool uses the continuity equation for incompressible fluids. The relationship is linear and is defined by the following formula:
Q = A × v
Where:
Q = Volumetric Flow Rate (e.g., m³/s, GPM)
A = Cross-Sectional Area of the pipe or duct (e.g., m², ft²)
v = Average Velocity of the fluid (e.g., m/s, ft/s)
Calculating Cross-Sectional Area
Since pipes and ducts come in various shapes, the calculation of Area (A) depends on the geometry:
1. Circular Pipes
For standard round pipes, the area is calculated using the diameter (d):
A = π × (d / 2)² OR A = (π × d²) / 4
2. Rectangular Ducts
For rectangular HVAC ducts or channels, the area is simply the product of width (w) and height (h):
A = w × h
Why This Calculation Matters
Pipe Sizing: If the velocity is too high, it can cause noise, vibration, and erosion (pipe wear). If the velocity is too low, suspended solids in the fluid may settle, leading to clogs. Engineers use this calculator to ensure the flow rate required by the process results in a velocity within the acceptable standard range.
HVAC Efficiency: In air conditioning, ensuring the correct Cubic Feet per Minute (CFM) based on duct size and air velocity is essential for maintaining proper room pressure and temperature control.
Common Unit Conversions
Fluid flow measurements often involve converting between metric and imperial units. This calculator handles these automatically, but here are some common factors:
1 m³/s = 60,000 Liters/minute
1 m³/s ≈ 15,850 US GPM
1 ft³/s (CFS) ≈ 448.8 US GPM
function toggleShapeFields() {
var shape = document.getElementById("shapeSelect").value;
var circularDiv = document.getElementById("circularInputs");
var rectangularDiv = document.getElementById("rectangularInputs");
if (shape === "circular") {
circularDiv.style.display = "block";
rectangularDiv.style.display = "none";
} else {
circularDiv.style.display = "none";
rectangularDiv.style.display = "block";
}
// Hide results when changing structure to avoid confusion
document.getElementById("result-area").style.display = "none";
document.getElementById("errorBox").style.display = "none";
}
function calculateFlowRate() {
// 1. Get Velocity and normalize to Meters per Second (m/s)
var velocityVal = parseFloat(document.getElementById("velocityValue").value);
var velocityUnit = document.getElementById("velocityUnit").value;
var errorBox = document.getElementById("errorBox");
// Reset output
errorBox.style.display = "none";
errorBox.innerHTML = "";
if (isNaN(velocityVal) || velocityVal <= 0) {
errorBox.style.display = "block";
errorBox.innerHTML = "Please enter a valid positive velocity.";
return;
}
var velocityInMeters = 0;
switch(velocityUnit) {
case "ms": velocityInMeters = velocityVal; break;
case "fts": velocityInMeters = velocityVal * 0.3048; break;
case "kmh": velocityInMeters = velocityVal / 3.6; break;
case "mph": velocityInMeters = velocityVal * 0.44704; break;
}
// 2. Calculate Area in Square Meters (m^2)
var shape = document.getElementById("shapeSelect").value;
var areaInMetersSquared = 0;
if (shape === "circular") {
var diameterVal = parseFloat(document.getElementById("diameterValue").value);
var diameterUnit = document.getElementById("diameterUnit").value;
if (isNaN(diameterVal) || diameterVal <= 0) {
errorBox.style.display = "block";
errorBox.innerHTML = "Please enter a valid positive pipe diameter.";
return;
}
var diameterInMeters = convertToMeters(diameterVal, diameterUnit);
var radius = diameterInMeters / 2;
areaInMetersSquared = Math.PI * Math.pow(radius, 2);
} else {
var widthVal = parseFloat(document.getElementById("widthValue").value);
var widthUnit = document.getElementById("widthUnit").value;
var heightVal = parseFloat(document.getElementById("heightValue").value);
var heightUnit = document.getElementById("heightUnit").value;
if (isNaN(widthVal) || widthVal <= 0 || isNaN(heightVal) || heightVal <= 0) {
errorBox.style.display = "block";
errorBox.innerHTML = "Please enter valid positive width and height dimensions.";
return;
}
var widthInMeters = convertToMeters(widthVal, widthUnit);
var heightInMeters = convertToMeters(heightVal, heightUnit);
areaInMetersSquared = widthInMeters * heightInMeters;
}
// 3. Calculate Flow Rate (Q = v * A) in base unit (m^3/s)
var flowM3s = velocityInMeters * areaInMetersSquared;
// 4. Convert and Display Results
var flowM3h = flowM3s * 3600;
var flowLpm = flowM3s * 60000;
var flowGpm = flowM3s * 15850.3231; // US Gallons
var flowCfs = flowM3s * 35.3146667;
document.getElementById("res_m3s").innerHTML = formatNum(flowM3s) + " m³/s";
document.getElementById("res_m3h").innerHTML = formatNum(flowM3h) + " m³/h";
document.getElementById("res_lpm").innerHTML = formatNum(flowLpm) + " L/min";
document.getElementById("res_gpm").innerHTML = formatNum(flowGpm) + " GPM (US)";
document.getElementById("res_cfs").innerHTML = formatNum(flowCfs) + " ft³/s";
document.getElementById("res_area").innerHTML = formatScientific(areaInMetersSquared) + " m²";
document.getElementById("result-area").style.display = "block";
}
function convertToMeters(value, unit) {
switch(unit) {
case "mm": return value * 0.001;
case "cm": return value * 0.01;
case "m": return value * 1.0;
case "in": return value * 0.0254;
case "ft": return value * 0.3048;
default: return value;
}
}
function formatNum(num) {
if (num === 0) return "0";
// If number is very small or very large, use scientific notation logic for readability,
// otherwise fixed 4 decimals.
if (num 100000) {
return num.toExponential(4);
}
return num.toFixed(4);
}
function formatScientific(num) {
if (num === 0) return "0";
if (num < 0.01) return num.toExponential(4);
return num.toFixed(4);
}