Feet per sec (ft/s)
Meters per sec (m/s)
Miles per hour (mph)
Calculated Flow Rate
Gallons Per Minute:– GPM
Liters Per Minute:– LPM
Cubic Meters Per Hour:– m³/h
Cubic Feet Per Second:– cfs
How to Calculate Water Flow Rate Through a Pipe
Understanding the flow rate of water through a pipe is crucial for various applications, ranging from residential plumbing and swimming pool maintenance to industrial irrigation and civil engineering. The flow rate determines how much volume of fluid passes through a cross-sectional area per unit of time.
The Flow Rate Formula
The fundamental physical equation used to calculate the flow rate of a liquid through a pipe (assuming the pipe is full) is:
Q = A × v
Where:
Q = Flow Rate (e.g., cubic meters per second, GPM)
A = Cross-sectional Area of the pipe
v = Average Velocity of the fluid
Step-by-Step Calculation Logic
To use this calculation manually, you need to follow these steps:
Calculate the Radius: Divide the inner diameter of the pipe by 2.
Calculate the Area: Use the formula A = π × r². Ensure your units are consistent (e.g., if velocity is in meters per second, area should be in square meters).
Multiply by Velocity: Multiply the calculated area by the speed at which the water is traveling.
Common Pipe Sizes and Velocities
In most residential water systems, water velocity is kept between 5 to 10 feet per second (ft/s) to prevent excessive noise (water hammer) and pipe erosion, while maintaining adequate pressure.
1/2″ Pipe: Typical for shower heads and bathroom sinks.
3/4″ to 1″ Pipe: Common for main supply lines entering a home.
2″ to 4″ Pipe: Used for drainage and commercial supply lines.
Why Velocity Matters
If the flow velocity is too low, suspended solids in the water may settle, causing blockages (sedimentation). If the velocity is too high, it causes high friction loss (pressure drop), potential pipe erosion, and loud hydraulic noise. Balancing diameter and velocity is key to an efficient system.
function calculateFlowRate() {
// Get Input Elements
var diameterInput = document.getElementById('pipeDiameter');
var diameterUnit = document.getElementById('diameterUnit');
var velocityInput = document.getElementById('waterVelocity');
var velocityUnit = document.getElementById('velocityUnit');
// Get Values
var dVal = parseFloat(diameterInput.value);
var vVal = parseFloat(velocityInput.value);
// Validation
if (isNaN(dVal) || isNaN(vVal) || dVal <= 0 || vVal < 0) {
alert("Please enter valid positive numbers for diameter and velocity.");
return;
}
// 1. Convert Diameter to Meters (Standard SI Unit for calculation)
var diameterInMeters = 0;
var dUnit = diameterUnit.value;
if (dUnit === "inch") {
diameterInMeters = dVal * 0.0254;
} else if (dUnit === "mm") {
diameterInMeters = dVal / 1000;
} else if (dUnit === "cm") {
diameterInMeters = dVal / 100;
} else if (dUnit === "m") {
diameterInMeters = dVal;
}
// 2. Convert Velocity to Meters/Second
var velocityInMS = 0;
var vUnit = velocityUnit.value;
if (vUnit === "ft_s") {
velocityInMS = vVal * 0.3048;
} else if (vUnit === "m_s") {
velocityInMS = vVal;
} else if (vUnit === "mph") {
velocityInMS = vVal * 0.44704;
}
// 3. Calculate Cross-Sectional Area (A = pi * r^2)
// r = d / 2
var radius = diameterInMeters / 2;
var area = Math.PI * Math.pow(radius, 2);
// 4. Calculate Flow Rate (Q = A * v) in Cubic Meters per Second (m³/s)
var flowRateM3S = area * velocityInMS;
// 5. Convert to Output Units
// GPM (Gallons Per Minute) – 1 m³/s ≈ 15,850.3231 GPM
var gpm = flowRateM3S * 15850.3231;
// LPM (Liters Per Minute) – 1 m³/s = 60,000 LPM
var lpm = flowRateM3S * 60000;
// m³/h (Cubic Meters per Hour) – 1 m³/s = 3600 m³/h
var m3h = flowRateM3S * 3600;
// CFS (Cubic Feet per Second) – 1 m³/s ≈ 35.3147 cfs
var cfs = flowRateM3S * 35.3147;
// Display Results
document.getElementById('results').style.display = "block";
document.getElementById('resGPM').innerHTML = gpm.toFixed(2) + " GPM";
document.getElementById('resLPM').innerHTML = lpm.toFixed(2) + " LPM";
document.getElementById('resM3H').innerHTML = m3h.toFixed(2) + " m³/h";
document.getElementById('resCFS').innerHTML = cfs.toFixed(4) + " ft³/s";
}