*Calculations assume full pipe flow conditions based on Manning's Equation.
About Gravity Pipe Flow Calculation
Understanding the capacity of a gravity-fed pipe system is essential for civil engineers, plumbers, and landscape designers. Unlike pressurized systems, gravity flow relies entirely on the slope of the pipe and the force of gravity to move fluid. This calculator utilizes Manning's Equation, the industry standard for estimating flow in open channels and gravity pipes.
Manning's Equation Explained
The Manning formula is an empirical formula estimating the average velocity of a liquid flowing in a conduit that does not completely enclose the liquid (or essentially a pipe driven by gravity rather than pressure). The formula is:
V = (k / n) * (R)^(2/3) * (S)^(1/2)
Where:
V: Cross-sectional average velocity.
k: Conversion factor (1.0 for SI units, 1.486 for Imperial units).
n: Manning coefficient of roughness (dependent on pipe material).
R: Hydraulic Radius (Area / Wetted Perimeter). For a full pipe, R = Diameter / 4.
S: Slope of the hydraulic grade line (channel slope).
Typical Roughness Coefficients (n)
The internal roughness of the pipe significantly impacts flow rate. Smoother pipes allow water to flow faster.
PVC / Plastic: 0.009 – 0.010 (Very smooth, high flow)
Concrete: 0.013 (Standard for storm drains)
Cast Iron: 0.012 – 0.015 (Common in older plumbing)
The slope (or gradient) is the vertical drop divided by the horizontal length. For example, a 1% slope means the pipe drops 1 unit for every 100 units of length. Steeper slopes increase velocity, but excessive velocity can cause erosion or noise issues. Conversely, a slope that is too shallow may result in solids settling out of the flow, leading to blockages.
Example Calculation
Consider a 200mm (0.2m) diameter PVC pipe installed with a 1% slope.
Hydraulic Radius (R): 0.2m / 4 = 0.05m
Slope (S): 1% = 0.01
Roughness (n): 0.009
Result: The velocity would be approximately 1.51 m/s and the flow rate approximately 47.4 Liters/second.
// Initialize labels on load
updateGPLabels();
function updateGPLabels() {
var unit = document.getElementById('gp_units').value;
var labelDia = document.getElementById('label_diameter');
var inputDia = document.getElementById('gp_diameter');
if (unit === 'si') {
labelDia.innerText = "Pipe Diameter (mm)";
inputDia.placeholder = "e.g. 200";
} else {
labelDia.innerText = "Pipe Diameter (inches)";
inputDia.placeholder = "e.g. 8";
}
}
function toggleCustomRoughness() {
var select = document.getElementById('gp_material');
var customContainer = document.getElementById('gp_custom_n_container');
if (select.value === 'custom') {
customContainer.style.display = 'block';
} else {
customContainer.style.display = 'none';
}
}
function calculateGravityFlow() {
// 1. Get Inputs
var unitSystem = document.getElementById('gp_units').value; // 'si' or 'imperial'
var diameterInput = parseFloat(document.getElementById('gp_diameter').value);
var slopePercent = parseFloat(document.getElementById('gp_slope').value);
var materialSelect = document.getElementById('gp_material');
var roughness = 0;
if (materialSelect.value === 'custom') {
roughness = parseFloat(document.getElementById('gp_roughness_custom').value);
} else {
roughness = parseFloat(materialSelect.value);
}
// 2. Validate Inputs
if (isNaN(diameterInput) || diameterInput <= 0) {
alert("Please enter a valid positive pipe diameter.");
return;
}
if (isNaN(slopePercent) || slopePercent <= 0) {
alert("Please enter a valid positive slope percentage.");
return;
}
if (isNaN(roughness) || roughness <= 0) {
alert("Please select a material or enter a valid roughness coefficient.");
return;
}
// 3. Define Logic Variables
var diameter, slope, hydraulicRadius, area, velocity, flowRate;
// Slope is unitless (m/m or ft/ft), converted from percent
slope = slopePercent / 100;
// 4. Calculation Logic
if (unitSystem === 'si') {
// SI UNITS CALCULATION
// Convert mm to meters
diameter = diameterInput / 1000;
// Area (A) = pi * (d/2)^2 (m²)
area = Math.PI * Math.pow((diameter / 2), 2);
// Wetted Perimeter (P) = pi * d (m)
// Hydraulic Radius (R) = A / P = d / 4 (m)
hydraulicRadius = diameter / 4;
// Manning's Eq (SI): V = (1/n) * R^(2/3) * S^(1/2)
velocity = (1 / roughness) * Math.pow(hydraulicRadius, 2/3) * Math.pow(slope, 0.5); // m/s
// Flow (Q) = A * V (m³/s)
var flowCubicMetersPerSec = area * velocity;
// Convert to display units
var flowLitersPerSec = flowCubicMetersPerSec * 1000;
var flowCubicMetersPerHour = flowCubicMetersPerSec * 3600;
// Display Results
document.getElementById('gp_result_flow').innerText = flowLitersPerSec.toFixed(2) + " L/s";
document.getElementById('gp_result_velocity').innerText = velocity.toFixed(2) + " m/s";
document.getElementById('gp_result_secondary').innerText = flowCubicMetersPerHour.toFixed(2) + " m³/h";
} else {
// IMPERIAL UNITS CALCULATION
// Convert inches to feet
diameter = diameterInput / 12;
// Area (A) = pi * (d/2)^2 (ft²)
area = Math.PI * Math.pow((diameter / 2), 2);
// Hydraulic Radius (R) = d / 4 (ft)
hydraulicRadius = diameter / 4;
// Manning's Eq (Imperial): V = (1.486/n) * R^(2/3) * S^(1/2)
var k = 1.486;
velocity = (k / roughness) * Math.pow(hydraulicRadius, 2/3) * Math.pow(slope, 0.5); // ft/s
// Flow (Q) = A * V (cfs – cubic feet per second)
var flowCFS = area * velocity;
// Convert to display units
var flowGPM = flowCFS * 448.831; // 1 cfs = 448.831 GPM
var flowMGD = flowCFS * 0.646317; // Million Gallons per Day
// Display Results
document.getElementById('gp_result_flow').innerText = flowGPM.toFixed(2) + " GPM";
document.getElementById('gp_result_velocity').innerText = velocity.toFixed(2) + " ft/s";
document.getElementById('gp_result_secondary').innerText = flowCFS.toFixed(3) + " cfs";
}
// Show results container
document.getElementById('gp_results').style.display = 'block';
}