DEV Community

Cover image for I Built a Chimney Calculator Because I Wanted a Wood Stove
Christoph Dieck
Christoph Dieck

Posted on

I Built a Chimney Calculator Because I Wanted a Wood Stove

The origin story

Early this year I decided to get a wood-burning stove for the house. Sounded simple. Pick a nice one, call the chimney sweep, done. Wrong.

The first question the sweep asked: "Which flue are you connecting to?" My house has a secondary shaft. Rectangular cross-section, not the standard 150mm round. It was originally just a ventilation shaft. Never designed for a combustion appliance. The sweep told me I needed a cross-section calculation according to DIN EN 13384-1 to prove the combination would even work. Pressure balance. Temperature at the outlet. Condensation risk. The whole program.

I looked at the math and got hooked. Not because it's pretty. It's not. It's pressure drops through friction, buoyancy from density differences between hot flue gas and cold ambient air, exponential temperature decay along insulated pipes, and dew point calculations that decide whether your chimney liner will dissolve in acid over time.

I wanted to understand it. So I built a tool that does it.

The main wizard showing the appliance selection step with a stove model selected and its technical parameters auto-filled (exhaust temp, mass flow, CO2 content).

What DruckZugPro does

druckzug.pro is a free chimney cross-section pre-check tool based on DIN EN 13384-1. You enter your stove's exhaust data and your chimney geometry. The tool runs the three core verification checks and tells you if the combination is feasible.

This is not a certified calculation. You still need a professional for that. But it gives you a solid first answer before you spend money on a consultation that might end with "nope, doesn't work."

Three checks run simultaneously:

  1. Pressure balance — Is the natural draft strong enough to overcome all friction and pressure losses?
  2. Temperature check — Is the gas temperature at the chimney outlet still above the dew point? (If not: condensation, acid, masonry damage.)
  3. Cross-section adequacy — Is the flue diameter large enough for the gas velocity to stay below critical limits?

Pass all three and you have a good basis for the real calculation. Fail one and the tool tells you what's wrong and what you could change.

The results summary showing all three checks (pressure, temperature, cross-section) with pass/fail badges, the numerical margins.

The physics that makes it interesting

The core is a thermodynamic model. Flue gas enters the connecting pipe hot and cools exponentially as it travels upward. The cooling rate depends on the pipe material, insulation, diameter, ambient temperature, and mass flow rate.

The available draft comes from buoyancy. Hot gas is less dense than cold ambient air. The density difference over the effective chimney height creates a pressure differential. That's your engine.

Working against it: friction along the pipe walls, losses at bends and transitions, the outlet loss at the chimney top, and the operating pressure the stove itself needs.

The temperature check is where it gets serious for the building. If the flue gas cools below its dew point before leaving the chimney, water and sulfuric acid condense on the inner walls. Over years, that destroys masonry. The tool computes the outlet temperature using the worst-case outdoor temperature and compares it against the fuel-specific dew point.

The temperature profile chart showing the exponential cooling curve from inlet to outlet, with the dew point line marked. The gap between outlet temp and dew point should be visible.

Chimney visualization. An SVG diagram that renders your chimney geometry to scale. Height, diameter, connecting pipe, top adapter. Updates reactively when you change parameters.

Features beyond the core check

Appliance database. Over a hundred stove models with their official technical data (exhaust temperature, mass flow, CO2 content, fuel type). Select your model and the form auto-fills. Data sourced from manufacturer specifications and the HKI registry.

Compatible appliances finder. Flip the question. Instead of "does my stove fit my chimney?" ask "which stoves fit my chimney?" The tool runs a simplified DIN check against every appliance in the database and shows you which ones pass.

Parameter tuner. After the initial calculation, interactive sliders let you tweak chimney height, diameter, pipe length, and cross-section shape. Results update live. You can see exactly where the margins break or improve. Failing parameters get highlighted in red.

Weather resilience chart. Sweeps the calculation across a range of outdoor temperatures (from -20 to +35) and plots the pressure margin and temperature margin as curves. Shows you at which ambient temperature your chimney setup starts failing. Useful for understanding edge-case behavior in extreme cold.

PDF export. Generates a multi-page A4 report with all configuration data and calculation results. Uses pdfme for client-side generation. No server round-trip.

Calculation appendix. Shows the full intermediate values and formulas used. Every number is traceable. Molar mass, density, specific heat, thermal conductance, cooling factor, friction coefficient. If you want to verify the math by hand, everything is there.

The calculation appendix section showing intermediate values with their formulas and computed numbers. Show the section with density, thermal conductance, and cooling factor visible.

The tech stack

  • Astro for static site generation. German and English with localized routes.
  • TypeScript for all DIN 13384-1 calculation logic. Pure functions, no DOM, fully testable.
  • Nanostores for reactive state. The config store triggers recalculation and UI updates.
  • Chart.js for pressure balance, temperature profile, weather resilience, and flow visualizations.
  • KaTeX for rendering mathematical formulas in the calculation appendix.
  • pdfme for client-side PDF report generation.
  • Ajv with JSON Schema for configuration validation.
  • Tailwind CSS for styling.
  • Vitest with fast-check for property-based testing on the thermodynamics module.

Everything runs in the browser. No backend. No accounts. Projects are saved in localStorage.

The architecture that made it clean

The DIN 13384 calculation is a pure function. ChimneyConfig goes in, CalculationResult comes out. No side effects. No store access. No DOM.

The pipeline runs in stages:

  1. Validate input (structural and physical constraints)
  2. Compute flue gas properties (density, specific heat, molar mass)
  3. Compute pressure losses through the connecting pipe (friction + single-point losses at bends)
  4. Compute pressure losses through the chimney (friction + transition + outlet loss)
  5. Compute available draft (buoyancy from density differential over height)
  6. Run the three verification checks
  7. Generate recommendations if anything fails

The recommendation engine is the part I'm most pleased with. When the pressure check fails, it binary-searches for the minimum chimney height that would pass. When the cross-section fails, it iterates through standard diameters and recommends the smallest one that works. Actionable output instead of just "fail."

What I learned

DIN EN 13384-1 is surprisingly elegant once you strip away the bureaucratic language. It's basically Newton's cooling law combined with the hydrostatic pressure formula and pipe friction factors. Three equations that interact. The difficulty is not in any single formula. It's in getting all the constants right (thermal transmittance per wall type, friction coefficients per material, outlet loss coefficients per termination type) and handling the edge cases cleanly.

The hardest part was testing. The standard doesn't include reference calculations you can verify against. I had to cross-check results against commercial software outputs from a chimney sweep I know and manually verify intermediate values against textbook examples.

Try it

Free. No login. No tracking. If you're planning a stove installation and want a sanity check before calling the sweep, this saves you the guesswork.

Top comments (0)