Flue Size Calculator

ANALife Services AuthorityNational Calculator Authority›Flue 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; } }

Flue Size Calculator

Calculate the minimum required flue cross-sectional area and diameter for chimneys and venting systems based on appliance heat input, flue height, and fuel type.

Appliance Heat Input (kW)

Flue Height (m)

Fuel Type

Natural Gas Oil Solid Fuel / Wood

Appliance Efficiency (%)

Flue Shape

Circular Square Rectangular (1:1.5 ratio)

Calculate Results will appear here.

function fluCalc() { var heatInput = parseFloat(document.getElementById('flu-heat-input').value); var height = parseFloat(document.getElementById('flu-height').value); var fuel = document.getElementById('flu-fuel').value; var efficiency = parseFloat(document.getElementById('flu-efficiency').value); var shape = document.getElementById('flu-shape').value; var resultDiv = document.getElementById('flu-result');

// --- Validation --- if (isNaN(heatInput) || heatInput Please enter a valid appliance heat input (kW) greater than 0.'; return; } if (isNaN(height) || height Please enter a valid flue height of at least 0.5 m.'; return; } if (isNaN(efficiency) || efficiency = 100) { resultDiv.innerHTML = 'Please enter an appliance efficiency between 10% and 99%.'; return; }

// --- Fuel-specific constants (BS EN 13384-1 / CIBSE Guide B) --- // flueGasFlow: m³/s per kW of heat released to flue // minTemp: minimum flue gas temperature (°C) at appliance outlet // velocityMin: minimum flue gas velocity (m/s) to ensure draught var fuelProps = { gas: { flueGasFlow: 0.00035, minTemp: 120, velocityMin: 2.0, label: 'Natural Gas' }, oil: { flueGasFlow: 0.00040, minTemp: 160, velocityMin: 2.5, label: 'Oil' }, solid: { flueGasFlow: 0.00055, minTemp: 200, velocityMin: 3.0, label: 'Solid Fuel / Wood' } }; var props = fuelProps[fuel];

// --- Heat released to flue (kW) --- // Q_flue = Q_input * (1 - efficiency/100) var effFrac = efficiency / 100; var qFlue = heatInput * (1 - effFrac);

// --- Flue gas volume flow rate at operating temperature (m³/s) --- // Using ideal gas law correction: V_actual = V_ref * (T_flue / T_ref) // T_ref = 0°C = 273.15 K, T_flue in K var tFlueK = props.minTemp + 273.15; var tRefK = 273.15; var qRef = qFlue * props.flueGasFlow; // m³/s at 0°C var qActual = qRef * (tFlueK / tRefK); // m³/s at flue temperature

// --- Draught correction factor based on height (simplified) --- // Effective draught velocity increases with sqrt(height) — taller flues allow // slightly smaller cross-sections; cap correction between 0.8 and 1.2 var heightFactor = Math.max(0.8, Math.min(1.2, Math.sqrt(5 / height)));

// --- Required cross-sectional area (m²) --- // A = Q_actual / (v_min * heightFactor) var area = qActual / (props.velocityMin * heightFactor); // m² var areaCm2 = area * 10000; // cm²

// --- Dimensions based on shape --- var dimStr = ''; var diameter = 0, side = 0, sideA = 0, sideB = 0;

if (shape === 'circular') { // A = π/4 * d² → d = sqrt(4A/π) diameter = Math.sqrt((4 * area) / Math.PI); var diamMm = diameter * 1000; // Round up to nearest standard liner size (mm): 100,125,150,175,200,225,250,300,350,400 var standards = [100,125,150,175,200,225,250,300,350,400]; var stdDiam = standards.find(function(s){ return s >= diamMm; }) || Math.ceil(diamMm / 25) * 25; dimStr = 'Required Diameter' + diamMm.toFixed(1) + ' mm' + 'Nearest Standard Liner' + stdDiam + ' mm'; } else if (shape === 'square') { // A = s² → s = sqrt(A) side = Math.sqrt(area) * 1000; // mm dimStr = 'Required Side Length' + side.toFixed(1) + ' mm × ' + side.toFixed(1) + ' mm'; } else { // Rectangular 1:1.5 ratio: A = a * 1.5a = 1.5a² → a = sqrt(A/1.5) sideA = Math.sqrt(area / 1.5) * 1000; // mm sideB = sideA * 1.5; dimStr = 'Required Dimensions' + sideA.toFixed(1) + ' mm × ' + sideB.toFixed(1) + ' mm'; }

// --- Velocity check --- var actualVelocity = qActual / area;

// --- Output --- resultDiv.innerHTML = '### Flue Size Results ' + '' + 'ParameterValue' + 'Fuel Type' + props.label + '' + 'Heat Input' + heatInput.toFixed(2) + ' kW' + 'Appliance Efficiency' + efficiency.toFixed(1) + ' %' + 'Heat Released to Flue' + qFlue.toFixed(2) + ' kW' + 'Flue Gas Temperature' + props.minTemp + ' °C' + 'Flue Gas Volume Flow (actual)' + (qActual * 1000).toFixed(3) + ' L/s' + 'Minimum Flue Velocity' + props.velocityMin.toFixed(1) + ' m/s' + 'Height Correction Factor' + heightFactor.toFixed(3) + '' + 'Required Cross-Sectional Area' + areaCm2.toFixed(2) + ' cm²' + dimStr + 'Actual Gas Velocity' + actualVelocity.toFixed(2) + ' m/s' + '' + '⚠️ Always verify against local building regulations (e.g. BS EN 13384-1, CIBSE Guide B, or local codes) and consult a qualified engineer before installation.

'; }

#### Formulas Used

1. Heat released to flue: Qflue = Qinput × (1 − η)

2. Reference flue gas volume flow: Qref = Qflue × kfuel   (m³/s at 0 °C)

3. Actual volume flow (ideal gas correction): Qactual = Qref × (Tflue / 273.15)

4. Height correction factor: fh = clamp(√(5 / H), 0.8, 1.2)

5. Required cross-sectional area: A = Qactual / (vmin × fh)

6. Circular diameter: d = √(4A / π) Square side: s = √A Rectangular (1:1.5): a = √(A / 1.5), b = 1.5a

#### Assumptions & References

More Calculators

Read Next

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

References