Calculating the flow rate of gas through a pipe is a critical task for engineers, HVAC technicians, and industrial operators. Unlike liquids, gases are highly compressible, meaning their volume changes significantly based on pressure and temperature. Therefore, we distinguish between Actual Cubic Feet per Minute (ACFM) and Standard Cubic Feet per Minute (SCFM).
The Core Formulas
To find the Actual Flow Rate (ACFM), we first determine the cross-sectional area of the pipe and multiply it by the velocity of the gas:
Area (A) = π × (Diameter / 24)² [in square feet]
ACFM = Velocity (ft/min) × Area (sq ft)
Converting ACFM to SCFM
Standard flow (SCFM) represents the gas flow as if it were at standard atmospheric conditions (usually 14.7 psia and 60°F). The formula is:
Using SCFM allows for consistent comparison and measurement across different operating environments. Because gas expands when heated and contracts under pressure, measuring only the actual volume (ACFM) would lead to inconsistent billing or equipment sizing. Most gas meters and industrial compressors are rated in SCFM to ensure a common baseline for energy consumption and capacity.
function calculateGasFlow() {
// Get Input Values
var diameter = parseFloat(document.getElementById("pipeDiameter").value);
var velocityFps = parseFloat(document.getElementById("gasVelocity").value);
var pressurePsig = parseFloat(document.getElementById("gasPressure").value);
var tempF = parseFloat(document.getElementById("gasTemp").value);
// Validation
if (isNaN(diameter) || isNaN(velocityFps) || isNaN(pressurePsig) || isNaN(tempF)) {
alert("Please enter valid numeric values for all fields.");
return;
}
if (diameter <= 0 || velocityFps < 0) {
alert("Diameter and Velocity must be positive numbers.");
return;
}
// 1. Calculate Area (sq ft)
// Radius in feet = (diameter / 2) / 12 = diameter / 24
var radiusFt = diameter / 24;
var areaSqFt = Math.PI * Math.pow(radiusFt, 2);
// 2. Calculate ACFM
// Velocity ft/min = velocity ft/sec * 60
var velocityFpm = velocityFps * 60;
var acfm = velocityFpm * areaSqFt;
// 3. Calculate SCFM
// Standard P = 14.7 psia, Standard T = 60F (519.67 Rankine)
var pActualAbs = pressurePsig + 14.7;
var tActualAbs = tempF + 459.67;
var pStandard = 14.7;
var tStandard = 519.67;
var scfm = acfm * (pActualAbs / pStandard) * (tStandard / tActualAbs);
// 4. Calculate Annual Volume (MMCF – Million Cubic Feet)
// SCFM * 60 min * 24 hours * 365 days / 1,000,000
var annualMmcf = (scfm * 60 * 24 * 365) / 1000000;
// Display Results
document.getElementById("flowResults").style.display = "block";
document.getElementById("acfmResult").innerHTML = acfm.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + " ACFM";
document.getElementById("scfmResult").innerHTML = scfm.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + " SCFM";
document.getElementById("annualResult").innerHTML = annualMmcf.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + " MMCF/year";
}