Propellant Thermochemistry

From BurnSim Wiki
Jump to navigation Jump to search

BurnSim 4 can compute a propellant's characterization numbers directly from what it's made of, instead of requiring an external tool. Enter the ingredient recipe - oxidizer, fuel, binder, and any additives, by weight - and BurnSim runs a thermochemical equilibrium calculation and fills in C*, Specific heat ratio, and Molar mass for you. This is the same kind of "ProPEP-style" analysis ProPep3 does, but built into BurnSim itself and powered by NASA's CEA thermochemical data rather than ProPep3's own database - so results are close to, but not bit-identical with, what ProPep3 reports for the same formulation. Small differences between the two are expected and not a bug in either one.

This does not replace determining density or the burn-rate numbers a and n - density still comes from the formulation's theoretical or measured value, and a/n still require real test data. See Propellant Characterization for those.

Opening the ingredient editor

On the Propellant panel, click Ingredients... (next to Delete, on the row of propellant buttons). This opens a dialog where you build the recipe for whichever propellant is currently selected.

BurnSim 4 Ingredients dialog showing a KNSB recipe (65 Potassium nitrate, 35 Sorbitol) analyzed at 800 psi
The Ingredients dialog after entering a 65/35 potassium nitrate/sorbitol recipe and clicking Analyze - the preview on the right shows C*, Isp, flame temperature, specific heat ratio, molar mass, density, and the combustion product breakdown, without having written anything to the propellant yet.

Ingredients are picked from a list, not typed freely, so there's no risk of a misspelled or unrecognized name silently producing a wrong analysis. Each ingredient gets an amount in parts by weight - these don't need to add up to 100. "65/35 KNO3/sorbitol" and "300g KNO3, 200g sorbitol" describe the same propellant and BurnSim treats them identically; only the ratio between ingredients matters, not the total. A running total of the entered amounts is shown so you can sanity-check what you've typed. Ingredients marked as condensed combustion products (for example, aluminum oxide from a metallized propellant) are flagged as such - this matters because the condensed fraction changes the flame temperature and gas properties considerably.

Two buttons drive the analysis:

  • Analyze computes and previews C*, specific heat ratio, and molar mass for the current recipe without touching the propellant record - use this to experiment with a formulation before committing to it.
  • OK does the same computation and then writes the results into the propellant's regular Density panel fields (C*, Specific heat ratio, Molar mass), the same fields Erosive Burning and every ordinary simulation read from. Density itself is not touched - see above.

If the propellant already has values in those fields that weren't generated by this feature (for example, ones you typed in by hand from a ProPep3 report or a test), BurnSim asks before overwriting them, since a value you measured yourself should never be silently discarded. Once a propellant's numbers do come from this feature, later re-running Ingredients... and clicking OK again updates them without asking, as expected for a value that's already computed.

Editing the ingredient table

BurnSim ships with a curated table of the oxidizers, fuels, binders, curatives, plasticizers, metals and additives used in amateur and experimental solid propulsion, but it is meant to grow. Every value in it has been checked against a published second source, and each entry records where its numbers came from, so you can audit any of them rather than having to take them on trust. If something you mix is missing, you can add it by hand here, or bring it in from ProPEP - see below. Click Edit ingredients... on the recipe dialog to open a searchable list of every ingredient currently known - the built-in set plus anything you've added - with a form for adding a new one, correcting an existing entry, or reverting a correction back to the built-in value. Changes save immediately; there's no separate "commit" step and no way to lose track of a half-finished edit. The main recipe editor's own ingredient picker is a type-to-filter box, so it stays usable as the table grows past the built-in list.

BurnSim 4 ingredient table editor, with a searchable ingredient list on the left, an entry form on the right, and an Import from ProPEP button at the bottom left
The ingredient table editor - search or scroll the list on the left, and use New/Save/Revert on the right to add, correct, or restore a built-in entry. Import from ProPEP..., bottom left, is the starting point for the import described below.


Importing ingredients from ProPEP

If you already use ProPep3, BurnSim can read its ingredient list and add entries from it to your own table. This is how to get hold of an ingredient BurnSim doesn't ship - ProPEP's list runs to well over a thousand substances.

Finding the file

The file you want is PEPCODED.DAF. Note carefully that it is normally not in ProPEP's program folder:

File Typical location What it is
PEPCODED.DAF C:\Users\you\Documents\ProPEP 3\PEPCODED.DAF This is the one you want. ProPEP's ingredient list - the substances you mix.
JANNAF.DAF C:\Program Files (x86)\ProPEP 3\JANNAF.DAF Not an ingredient list. Thermodynamic data for the ~2,000 species combustion produces. BurnSim has its own copy of this and does not need yours.

If your Documents folder is redirected to OneDrive, look under C:\Users\you\OneDrive\Documents\ProPEP 3\ instead. Older PEP and cpropep installations keep the same file in their own folders, and those work too - any copy of PEPCODED.DAF will do.

Browsing to the ProPEP program folder finds exactly one .DAF file there, and it is the wrong one. If you pick it, BurnSim will tell you so rather than producing nonsense. BurnSim also opens the file dialog in Documents\ProPEP 3 when that folder exists, so in the common case the right file is already in front of you.

Running the import

  1. On the Propellant panel, click Ingredients...
  2. Click Edit ingredients...
  3. Click Import from ProPEP... at the bottom left.
  4. Select your PEPCODED.DAF.
  5. A list of everything BurnSim could read from the file appears. Tick what you want and click Import.
BurnSim 4 ProPEP import window listing ingredients read from PEPCODED.DAF, with checkboxes, formula, heat of formation and density columns, and a Notes column flagging entries already in the table
The import window against a standard PEPCODED.DAF: 635 ingredients readable, 451 rows skipped with the reason for each, and a Notes column marking which entries your table already has and which contradict another row in the same file.

Nothing is selected when the list opens - you choose what comes in, rather than un-choosing what you don't want. Most of ProPEP's list is 1960s research chemistry that no amateur or experimental formulation will ever use, so importing all of it would bury the ingredients you actually mix.

The controls above the list help you narrow it down:

  • The search box filters by name or formula. Searching POLY and clicking Select all is a quick way to take one family of ingredients.
  • Select all and Select none act on what is currently shown, not on the whole file - so a search followed by Select all does what it looks like it does.
  • Only new ticks everything your table doesn't already have. For most people this is the one click they want.
The same import window with NITRATE typed into the search box, showing 26 matching nitrate ingredients and a count reading 0 of 635 selected, 26 shown
Searching narrows the list - here NITRATE cuts 635 rows to 26. The count at the bottom left always says how many are shown and how many are selected, so Import is never a guess.

Each row shows the name, formula, heat of formation and density exactly as the file states them - the heat of formation is in cal/g, the unit PEPCODED uses, so you can compare a row directly against your own copy of the file without converting anything.

What the Notes column means

already in your table - BurnSim already has an ingredient by that name. These are never overwritten, whether you tick them or not (see below).
conflicting values in this file - the file lists this substance more than once with values that disagree. Check it against another source before you rely on a result that used it.

Existing entries are never replaced

An import can only add ingredients. It will never change one you already have - not BurnSim's built-in values, and not corrections you've made yourself. BurnSim's own entries have each been checked against a second published source; the imported ones have not been checked at all, so replacing one with the other would be a downgrade you'd have no way of noticing afterwards. If you want an imported value to win, edit that entry by hand after importing.

Everything you import is written to your personal overlay file (Documents\burnsim4_ingredients.xml), never into BurnSim itself, so you can edit or delete any of it later from this same editor, and a BurnSim update will not disturb it.

Rows BurnSim skips, and why

The import reports how many rows it could not use and what was wrong with each. None of this indicates a problem with your file - PEPCODED dates from 1986 and has been added to by many hands since. Typical reasons:

no density recorded - by far the largest group, around a third of the file. An ingredient needs a density, and BurnSim will not invent one.
contains (element), which BurnSim does not model - iodine, bromine, caesium, mercury, uranium and a few others. BurnSim's thermochemistry covers the elements that occur in solid propellants; these entries could be entered but never simulated.
uses PEP's inert placeholder - PEPCODED writes a non-reacting filler as a fake element (U1 to U5); its "ALUMINUM (NON-REACTIVE)" and "GRAPHITE (NONBURNING)" entries work this way. BurnSim has no equivalent, because everything in a BurnSim recipe takes part in the reaction.
a row with this name was already read - PEPCODED truncates names at thirty characters, so some entries collide. The first one is kept.
this row's columns do not line up - a genuinely malformed row in the file. There is one of these in the standard PEPCODED.DAF.

A warning worth taking seriously

Imported values are not checked by BurnSim. PEPCODED contradicts itself in a number of places - it carries three different strontium nitrates, whose heats of formation cannot all be correct, and lists at least one entry whose name and chemical formula describe different substances. BurnSim flags the contradictions it can detect, but it cannot tell you which of two disagreeing rows is right.

Before you rely on a motor design that used an imported ingredient, check that ingredient's numbers against a second source. This is the same standard BurnSim holds its own built-in table to.

Where the recipe is stored

The recipe and where its numbers came from (when it was generated, from what formulation) are saved as part of the propellant - both in `.bsx` motor files and in the propellant database - so re-opening a motor or propellant later shows the same recipe and lets you regenerate or edit it again. Copying a propellant (Save As...) carries the recipe along with it; editing the copied propellant's characterization fields by hand afterward, without re-running Ingredients, correctly stops BurnSim from claiming those hand-edited numbers were computed by this feature.