The volume flow rate (Q) is a measurement of the volume of fluid that passes through a given cross-sectional area per unit of time. In plumbing, HVAC, and civil engineering, determining the flow rate is essential for sizing pumps, pipes, and control valves correctly.
The Continuity Equation Formula
The standard formula used for calculating flow rate in a cylindrical pipe is:
Q = A × v
Q: Volume Flow Rate
A: Cross-sectional Area of the pipe (π × r²)
v: Flow Velocity
Step-by-Step Calculation Example
Suppose you have a pipe with an internal diameter of 4 inches and a fluid velocity of 5 feet per second. Here is how you find the flow rate:
Fluid Viscosity: Thicker liquids move slower than water under the same pressure.
Pipe Bends and Valves: Every elbow or fitting creates "head loss," which slows down the flow.
Pressure Differential: A higher pressure difference between two points will generally increase the velocity.
function calculateFlowRate() {
var d = parseFloat(document.getElementById('pipeDiameter').value);
var dUnit = document.getElementById('diameterUnit').value;
var v = parseFloat(document.getElementById('flowVelocity').value);
var vUnit = document.getElementById('velocityUnit').value;
if (isNaN(d) || isNaN(v) || d <= 0 || v <= 0) {
alert("Please enter valid positive numbers for diameter and velocity.");
return;
}
// Convert everything to Meters and Meters per Second for standard SI calculation
var dMeters;
if (dUnit === "inches") {
dMeters = d * 0.0254;
} else if (dUnit === "mm") {
dMeters = d / 1000;
} else {
dMeters = d;
}
var vMps;
if (vUnit === "fps") {
vMps = v * 0.3048;
} else {
vMps = v;
}
// Calculate Area (A = pi * r^2)
var radius = dMeters / 2;
var area = Math.PI * Math.pow(radius, 2);
// Calculate Flow Rate in Cubic Meters per Second (m3/s)
var qM3s = area * vMps;
// Conversions
var qM3H = qM3s * 3600;
var qLS = qM3s * 1000;
var qGPM = qM3s * 15850.3231; // 1 m3/s = 15850.3231 US GPM
var qCFM = qM3s * 2118.88; // 1 m3/s = 2118.88 CFM
// Display Results
document.getElementById('resGPM').innerText = qGPM.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resM3H').innerText = qM3H.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resLS').innerText = qLS.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resCFM').innerText = qCFM.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('flowResult').style.display = "block";
}