Gas Line Size Calculator

ANALife Services AuthorityNational Calculator Authority›Gas Line Size Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Gas Line Size Calculator

Determine the required pipe diameter for natural gas or propane distribution lines using the Spitzglass formula (low-pressure) and the Weymouth formula (high-pressure).

Flow Rate (CFH - cubic feet per hour)

Pipe Length (feet)

Allowable Pressure Drop (inches W.C.)

Gas Specific Gravity (air = 1.0)

Formula Type

Spitzglass Low-Pressure (< 1 PSI) Spitzglass High-Pressure (≥ 1 PSI) Weymouth (High-Pressure Transmission)

Inlet Pressure P1 (PSIA)

Outlet Pressure P2 (PSIA)

Calculate Required Pipe Diameter Results will appear here.

(function() { const formulaSelect = document.getElementById('gas-formula-type'); const inletGroup = document.getElementById('gas-inlet-pressure-group'); const outletGroup = document.getElementById('gas-outlet-pressure-group'); const pressureDropGroup = document.getElementById('gas-pressure-drop').closest('.calc-group');

formulaSelect.addEventListener('change', function() { const val = this.value; if (val === 'spitzglass_high' || val === 'weymouth') { inletGroup.style.display = ''; outletGroup.style.display = ''; pressureDropGroup.style.display = 'none'; } else { inletGroup.style.display = 'none'; outletGroup.style.display = 'none'; pressureDropGroup.style.display = ''; } });

window.gasCalc = function() { const resultDiv = document.getElementById('gas-result');

const Q = parseFloat(document.getElementById('gas-flow-rate').value); const L = parseFloat(document.getElementById('gas-pipe-length').value); const Sg = parseFloat(document.getElementById('gas-specific-gravity').value); const formula = document.getElementById('gas-formula-type').value;

// Validate common inputs if (isNaN(Q) || Q ⚠ Please enter a valid flow rate greater than 0.'; return; } if (isNaN(L) || L ⚠ Please enter a valid pipe length greater than 0.'; return; } if (isNaN(Sg) || Sg 3.0) { resultDiv.innerHTML = '⚠ Please enter a valid specific gravity between 0.1 and 3.0.'; return; }

let D = null; let formulaUsed = ''; let pressureInfo = '';

if (formula === 'spitzglass_low') { // Spitzglass Low-Pressure Formula: // Q = 3550 * sqrt( (deltaH * D^5) / (Sg * L * (1 + 3.6/D + 0.03*D)) ) // Solved iteratively for D const deltaH = parseFloat(document.getElementById('gas-pressure-drop').value); if (isNaN(deltaH) || deltaH ⚠ Please enter a valid pressure drop greater than 0.'; return; }

// Rearranged: Q^2 = 3550^2 * (deltaH * D^5) / (Sg * L * (1 + 3.6/D + 0.03D)) // f(D) = 3550^2 * deltaH * D^5 / (Sg * L * (1 + 3.6/D + 0.03D)) - Q^2 = 0 // Use Newton-Raphson iteration const K = (3550 * 3550 * deltaH) / (Sg * L); const Q2 = Q * Q;

let d = 1.0; // initial guess in inches let converged = false; for (let i = 0; i ⚠ Calculation did not converge. Please check your inputs.'; return; } D = d; formulaUsed = 'Spitzglass Low-Pressure'; pressureInfo = 'Pressure Drop: ' + deltaH.toFixed(3) + ' in. W.C.';

} else if (formula === 'spitzglass_high') { // Spitzglass High-Pressure Formula: // Q = 3550 * sqrt( (P1^2 - P2^2) * D^5 / (Sg * L * (1 + 3.6/D + 0.03*D)) ) const P1 = parseFloat(document.getElementById('gas-inlet-pressure').value); const P2 = parseFloat(document.getElementById('gas-outlet-pressure').value); if (isNaN(P1) || P1 ⚠ Please enter a valid inlet pressure.'; return; } if (isNaN(P2) || P2 = P1) { resultDiv.innerHTML = '⚠ Outlet pressure must be less than inlet pressure and greater than 0.'; return; }

const deltaP2 = P1 * P1 - P2 * P2; const K = (3550 * 3550 * deltaP2) / (Sg * L); const Q2 = Q * Q;

let d = 1.0; let converged = false; for (let i = 0; i ⚠ Calculation did not converge. Please check your inputs.'; return; } D = d; formulaUsed = 'Spitzglass High-Pressure'; pressureInfo = 'P1: ' + P1.toFixed(2) + ' PSIA, P2: ' + P2.toFixed(2) + ' PSIA, ΔP²: ' + deltaP2.toFixed(2) + ' PSIA²';

} else if (formula === 'weymouth') { // Weymouth Formula: // Q = 433.5 * (Tb/Pb) * sqrt( (P1^2 - P2^2) / (Sg * T * L * Z) ) * D^(8/3) // Simplified at standard conditions (Tb=520°R, Pb=14.73 psia, T=520°R, Z=1): // Q = 433.5 * (520/14.73) * sqrt( (P1^2 - P2^2) / (Sg * L) ) * D^(8/3) // Constant C = 433.5 * 520 / 14.73 ≈ 15301.4 // Q = C * sqrt( (P1^2 - P2^2) / (Sg * L) ) * D^(8/3) // D^(8/3) = Q / (C * sqrt(...)) // D = (Q / (C * sqrt(...)))^(3/8) const P1 = parseFloat(document.getElementById('gas-inlet-pressure').value); const P2 = parseFloat(document.getElementById('gas-outlet-pressure').value); if (isNaN(P1) || P1 ⚠ Please enter a valid inlet pressure.'; return; } if (isNaN(P2) || P2 = P1) { resultDiv.innerHTML = '⚠ Outlet pressure must be less than inlet pressure and greater than 0.'; return; }

const deltaP2 = P1 * P1 - P2 * P2; const C = 433.5 * 520.0 / 14.73; // ~15,301.4 const sqrtTerm = Math.sqrt(deltaP2 / (Sg * L)); if (sqrtTerm === 0) { resultDiv.innerHTML = '⚠ Invalid pressure or length values resulting in zero flow capacity.'; return; } D = Math.pow(Q / (C * sqrtTerm), 3.0 / 8.0); formulaUsed = 'Weymouth'; pressureInfo = 'P1: ' + P1.toFixed(2) + ' PSIA, P2: ' + P2.toFixed(2) + ' PSIA, ΔP²: ' + deltaP2.toFixed(2) + ' PSIA²'; }

if (D === null || isNaN(D) || D ⚠ Could not compute a valid pipe diameter. Please check your inputs.'; return; }

// Convert to common pipe sizes (nominal pipe sizes in inches - ID approximations) const nominalSizes = [ {nom: '1/2"', id: 0.622}, {nom: '3/4"', id: 0.824}, {nom: '1"', id: 1.049}, {nom: '1-1/4"', id: 1.380}, {nom: '1-1/2"', id: 1.610}, {nom: '2"', id: 2.067}, {nom: '2-1/2"', id: 2.469}, {nom: '3"', id: 3.068}, {nom: '4"', id: 4.026}, {nom: '6"', id: 6.065}, {nom: '8"', id: 7.981}, {nom: '10"', id: 10.020}, {nom: '12"', id: 11.938} ];

let recommended = null; for (let s of nominalSizes) { if (s.id >= D) { recommended = s; break; } }

const Dmm = D * 25.4; const Dcm = D * 2.54;

let pipeRow = recommended
? 'Recommended Nominal Pipe Size' + recommended.nom + ' (ID: ' + recommended.id.toFixed(3) + '")'
'Recommended Nominal Pipe SizeLarger than 12" — consult engineer';

resultDiv.innerHTML = '### ✓ Results ' + '' + 'ParameterValue' + 'Formula Used' + formulaUsed + '' + 'Flow Rate' + Q.toFixed(1) + ' CFH' + 'Pipe Length' + L.toFixed(1) + ' ft' + 'Specific Gravity' + Sg.toFixed(3) + '' + '' + (pressureInfo.includes('Drop') ? 'Pressure Drop' : 'Pressure Conditions') + '' + pressureInfo + '' + 'Calculated Minimum Inside Diameter' + D.toFixed(4) + ' in (' + Dmm.toFixed(2) + ' mm)' + pipeRow + '' + 'ⓘ Always select the next standard pipe size larger than the calculated minimum diameter. Verify with local codes (NFPA 54, IFGC, or applicable standard).

'; }; })();

#### Formulas Used

Spitzglass Low-Pressure (< 1 PSI):

Q = 3550 × √[ (ΔH × D&sup5;) / (Sg × L × (1 + 3.6/D + 0.03D)) ]

Spitzglass High-Pressure (≥ 1 PSI):

Q = 3550 × √[ (P&sub1;² − P&sub2;²) × D&sup5; / (Sg × L × (1 + 3.6/D + 0.03D)) ]

Weymouth (High-Pressure Transmission):

Q = 433.5 × (Tb/Pb) × √[ (P&sub1;² − P&sub2;²) / (Sg × T × L × Z) ] × D8/3

Where: Q = flow rate (CFH), D = inside diameter (in), L = pipe length (ft), Sg = specific gravity of gas (air=1.0), ΔH = pressure drop (in. W.C.), P&sub1; = inlet pressure (PSIA), P&sub2; = outlet pressure (PSIA), Tb = base temperature (520 °R), Pb = base pressure (14.73 PSIA), T = flowing temperature (520 °R), Z = compressibility factor (1.0 assumed)

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References