Calculate the required internal pipe diameter based on flow rate and fluid velocity.
Liters per Minute (L/min)
Cubic Meters per Hour (m³/h)
US Gallons per Minute (GPM)
Cubic Feet per Second (CFS)
Liters per Second (L/s)
Recommended: 1.5 – 3.0 m/s for liquids
Meters per Second (m/s)
Feet per Second (ft/s)
Calculation Results
Internal Diameter (Exact):— mm
Internal Diameter (Inches):— in
Cross-Sectional Area:— mm²
Understanding Flow Rate and Pipe Sizing
Determining the correct pipe diameter is a critical step in designing hydraulic systems, plumbing networks, and industrial process lines. Using a pipe that is too small can lead to excessive pressure drop, noise, and erosion, while a pipe that is too large increases material costs and can cause sedimentation issues due to low fluid velocity.
The Fundamental Equation:
The relationship between flow rate, velocity, and area is defined by the continuity equation:
Q = A × v
Where:
Q = Volumetric Flow Rate (e.g., m³/s)
A = Cross-sectional Area of the pipe (m²)
v = Average Fluid Velocity (m/s)
How to Calculate Pipe Diameter
To find the required diameter (d), we rearrange the formula. Since the area of a circle is A = π × (d/2)² or A = (π × d²) / 4, we can substitute this into the continuity equation:
d = √[ (4 × Q) / (π × v) ]
This formula gives the exact internal diameter required to maintain the desired velocity at the specified flow rate.
Recommended Velocities
Choosing the right velocity is key to an efficient system. Common engineering standards suggest:
General Water Service: 1.0 to 2.5 m/s (3 to 8 ft/s)
Pump Suction Lines: 0.6 to 1.2 m/s (2 to 4 ft/s) to prevent cavitation
Pump Discharge Lines: 1.5 to 3.0 m/s (5 to 10 ft/s)
Process Lines: 1.5 to 2.5 m/s
Calculation Example
Suppose you need to transport water at a rate of 300 Liters per Minute and you want to maintain a velocity of 2 Meters per Second.
Convert Flow Rate: 300 L/min = 0.005 m³/s (since 1000 L = 1 m³ and 60 s = 1 min).
Convert Unit: 0.0564 meters = 56.4 mm (approx. 2.22 inches).
In this scenario, you would select a pipe with an internal diameter of at least 56.4 mm. A standard 2.5-inch Schedule 40 pipe might be selected depending on the available commercial sizes.
function calculatePipeDiameter() {
// 1. Get Input Values
var flowRateInput = document.getElementById('flowRate').value;
var flowUnit = document.getElementById('flowUnit').value;
var velocityInput = document.getElementById('velocity').value;
var velocityUnit = document.getElementById('velocityUnit').value;
// 2. Validate Inputs
if (!flowRateInput || isNaN(flowRateInput) || flowRateInput <= 0) {
alert("Please enter a valid positive Flow Rate.");
return;
}
if (!velocityInput || isNaN(velocityInput) || velocityInput <= 0) {
alert("Please enter a valid positive Velocity.");
return;
}
var Q = parseFloat(flowRateInput);
var v = parseFloat(velocityInput);
// 3. Convert Flow Rate to Cubic Meters per Second (m³/s) – Base SI Unit
var Q_base = 0;
if (flowUnit === 'lpm') { // Liters per Minute
Q_base = Q / 60000;
} else if (flowUnit === 'm3h') { // Cubic Meters per Hour
Q_base = Q / 3600;
} else if (flowUnit === 'gpm') { // US Gallons per Minute
// 1 US Gallon = 0.00378541 m³
// 1 min = 60s
Q_base = Q * 0.00378541 / 60;
} else if (flowUnit === 'cfs') { // Cubic Feet per Second
// 1 cubic foot = 0.0283168 m³
Q_base = Q * 0.0283168;
} else if (flowUnit === 'lps') { // Liters per Second
Q_base = Q / 1000;
}
// 4. Convert Velocity to Meters per Second (m/s) – Base SI Unit
var v_base = 0;
if (velocityUnit === 'ms') {
v_base = v;
} else if (velocityUnit === 'fts') {
// 1 ft = 0.3048 m
v_base = v * 0.3048;
}
// 5. Calculate Cross-Sectional Area (A = Q / v)
// A is in square meters
var Area_m2 = Q_base / v_base;
// 6. Calculate Diameter (d = sqrt(4A / pi))
// d is in meters
var d_meters = Math.sqrt((4 * Area_m2) / Math.PI);
// 7. Convert to Display Units
var d_mm = d_meters * 1000;
var d_inches = d_meters * 39.3701;
var Area_mm2 = Area_m2 * 1000000;
// 8. Display Results
document.getElementById('resDiameterMm').innerHTML = d_mm.toFixed(2) + " mm";
document.getElementById('resDiameterInch').innerHTML = d_inches.toFixed(3) + " in";
document.getElementById('resArea').innerHTML = Area_mm2.toFixed(2) + " mm²";
// Show result box
document.getElementById('resultBox').style.display = 'block';
}