Erosive Burning
Erosive burning is the increase in propellant burn rate caused by high-velocity gas flow across the burning surface, on top of the normal pressure-driven rate. It's strongest near the aft end of a grain, where mass flux is highest, and shows up as an ignition pressure spike and/or the aft end of a grain burning through before the forward end. BurnSim 4 can model this; BurnSim 3 could not.
This is opt-in and off by default - a motor with the feature off behaves exactly as before.
Turning it on
The quickest way is the Erosive burning selector on the toolbar, under the menu bar (None / Lenoir-Robillard / Mukunda-Paul / Ma (2020)). Picking a model turns axial slicing on; "None" turns it off. It sat next to the graph until 4.0.0.18, and moved to the toolbar so it is next to the Run button while you compare runs.
The same state is also reachable under Settings, which is also where slice count lives:
- Simulate Erosive Burning (Use Axial Grain Slices) - the master switch. When on, each grain is divided into axial slices and burn rate is augmented per-slice by the selected model; when off (default), BurnSim uses a single lumped burn rate per grain as it always has. Kept in sync with the toolbar selector above - the two are one setting, not two
- Set Slice Count... - how many axial slices each grain is divided into. More slices resolve a tapered port or a burnthrough more precisely, at the cost of simulation speed. 100 is a reasonable default, depending on available processing power
- Erosive Burning Model - a submenu to pick which correlation the sliced simulation uses: Lenoir-Robillard, Mukunda-Paul, or Ma (2020). This is a global setting, not a per-motor one - a saved .bsx file doesn't record which model produced its numbers. Switching models re-simulates immediately if slicing is on, since the different correlations can produce visibly different traces
This all lives in the Settings menu alongside the other simulation-accuracy toggles, and is mirrored next to the graph for quick access while comparing runs.
C* is always required, regardless of erosive model
Every BurnSim simulation - erosive burning on or off, whichever model - needs a valid C* for the propellant. It's not an erosive-burning input at all; it's the fundamental number the whole ballistics model solves chamber pressure from (see the Propellant panel and Propellant Characterization). A propellant missing C* is refused with the usual "Missing C* Value" prompt before any simulation runs, sliced or not. Below, where a model is described as needing (or not needing) Specific heat ratio/Molar mass, that's specifically about deriving a flame temperature for the erosive-burning math - not about whether C* itself is required, which is never in question.
The three models
All three models estimate an augmentation factor on top of the normal Saint-Robert rate (r = a*P^n), evaluated per slice from that slice's local mass flux. They differ in what they assume and what they need from you.
Lenoir-Robillard (default)
The model most motor designers actually use. It's an empirical, "data-fitting" correlation, not a first-principles prediction - the literature is explicit that it requires experimental data for each propellant formulation to be exact. BurnSim's default numbers are a reasonable starting point, not a guarantee.
- Beyond the C* every propellant already needs, this model also needs Specific heat ratio and Molar mass set (see the Propellant panel) - together with C*, these feed a derived flame temperature the model needs. A propellant missing Specific heat ratio/Molar mass is refused with a warning rather than silently simulated wrong; all three numbers are ordinary ProPep/CEA outputs, so this is rarely a real blocker - see Using ProPep3 for exactly how to get them from a formulation.
- Its erosive sensitivity constant, beta, has a sensible derived default (based on the propellant's own a/n - slower propellants are inherently more crossflow-sensitive) but can be overridden if you've characterized your own propellant against crossflow.
- Its length scale is distance along the grain port from the head end, not a hydraulic diameter - not something you need to enter, but worth knowing if you're comparing against a value from another source.
Mukunda-Paul
A correlation whose selling point is being universal - not fitted per propellant. It's threshold-based: below a certain non-dimensional mass flux there is no augmentation at all, and above it augmentation follows a fixed exponent that doesn't vary by formulation.
- Needs only ordinary a/n/density data (plus the C* every propellant already needs), plus optionally the combustion-gas viscosity override below. Unlike Lenoir-Robillard and Ma, it needs no Specific heat ratio or Molar mass - it never derives a flame temperature at all - so it will run on propellants that are missing those two fields (something Lenoir-Robillard and Ma can't do), even though C* itself is still required either way.
- No propellant-specific constant to supply or tune - the model's two constants are treated as universal and are not exposed as overrides.
- Its length scale is the port's hydraulic diameter, not distance along the port - the opposite convention from Lenoir-Robillard.
- Because it has a hard threshold, a motor that shows a taper under Lenoir-Robillard or Ma can legitimately show none at all under Mukunda-Paul at the same conditions - that's a real difference between the correlations, not a bug.
Ma (2020)
The newest of the three, and the only one with zero fitted erosive-specific constants - not just no per-propellant constant (Mukunda-Paul's claim too), but no universal fitted constant either. Instead of any empirical exponent, it computes a real convective heat-transfer coefficient (a Gnielinski correlation for the Nusselt number, laminar/turbulent/transition-aware, with a transpiration/blowing correction) and derives the erosive rate directly from a surface energy balance.
- Like Lenoir-Robillard - and beyond the C* every propellant already needs - this model needs Specific heat ratio and Molar mass set, for the same reason: both feed a derived combustion-gas property (here, gas specific heat, rather than L-R's flame temperature) the model's heat-transfer math needs. See Using ProPep3 for how to get them.
- Uses both length-scale conventions the other two models use separately: the port's hydraulic diameter (Mukunda-Paul's convention) for the Reynolds number and friction factor, and distance along the port from the head end (Lenoir-Robillard's convention) for the entrance-effect term in the Nusselt correlation. Nothing you need to enter, but explains why it draws on the same slice data both other models use.
- Adds one override the other two models don't use: Surface Roughness, the propellant surface's absolute roughness height, feeding the friction-factor calculation. Blank (0, hydraulically smooth) is the default, since no propellant in this codebase has measured surface-roughness data.
None of the three models is "more correct" in general - they're offered so you can pick or compare, not because any one is a fallback for missing data.
Erosive burning overrides
On the Propellant panel's dedicated Erosive Burning tab (split out from the main Properties tab, since these only matter once slicing is on) is a section of seven advanced tri-state fields: Beta, Viscosity (mu), Prandtl, Surface temp, Solid heat capacity (cs), Combustion temp, and Surface Roughness. Each works the same way:
- Blank - BurnSim derives a value automatically (from the propellant's own a/n, C*, specific heat ratio and molar mass, or from a nominal composite-propellant constant, depending on the field). This is correct for most users and most fields.
- A number - use exactly that value instead. Useful once you have test data or a thermochemistry report (ProPep, CEA) with a directly measured or reported number you'd rather pin exactly.
The small grey text under each box always shows what value is actually in effect, whether derived or overridden. These overrides travel with the propellant in a saved .bsx file and in the shared propellant database, the same way C* and molar mass do. They only matter once axial slicing is turned on, and which fields matter depends on the model selected above: Mukunda-Paul only actually uses Viscosity; Lenoir-Robillard uses Beta, Viscosity, Prandtl, Surface temp, Solid heat capacity and Combustion temp; Ma uses all of those except Beta, plus Surface Roughness.
Reading the results
- A Kn Eff checkbox appears next to the ordinary Kn checkbox above the graph, plotting the erosive-burning-effective Kn as its own series. It reads a flat zero unless slicing is on - BurnSim always reports geometric Kn separately rather than silently redefining it.
- The grain cross-section/axial view draws a taper once slicing is on and a simulation has run, showing the port opening up faster toward the aft end where erosive burning is strongest - the visible signature of the effect.
- The Results tab's usual summary (total impulse, peak thrust, Isp, etc.) reflects the augmented burn automatically, and also adds a dedicated line reporting whether erosive burning actually had any effect on this run - off, on with a peak augmentation percentage, or on but never triggered (the port/throat crossflow never got restrictive enough) - so you're not left guessing whether the option did anything.
- An Erosive Model column appears in exported CSV files, reading "None" or the model's name, constant down every row of that export - so a saved CSV records which correlation (if any) produced it without you needing to also keep the .bsx alongside it. The printed/PDF report's "Simulation Summary" heading likewise reads "Simulation Summary - Erosive (<model>)" whenever the run was sliced.
Things worth knowing
- This is a calibrated correlation, not predictive physics - all three models are fits to test data or to real-gas heat-transfer physics rather than direct measurement of a given motor, and published literature notes real gaps (for example, Lenoir-Robillard predicts a temperature dependence that measurements don't actually show). Treat results as informative, not exact, especially with default/derived constants rather than your own measured ones.
- The master switch and model choice are both global settings, not saved per motor - if you need to know how a particular .bsx's numbers were produced, that's state you have to track yourself (though a CSV exported from that run does record it - see "Reading the results" above).
- Turning slicing on costs simulation speed (more work per timestep, times the slice count) - most motors aren't anywhere near the flux regime where it changes the answer, which is why it's off by default.
- The Results tab's port/throat ratio is a quick way to judge whether a given motor is even in that regime, before turning slicing on. A comfortable ratio (2 or more) means the port isn't choking the flow and erosive burning is unlikely to change much; below about 1.25 it is worth simulating properly.
- This is a different feature from the Throat erosion field on the Motor & Nozzle panel (see BurnSim Fields), which models the nozzle's throat diameter growing during the burn. Erosive burning augments propellant burn rate from crossflow; throat erosion is a nozzle material effect. They can be used together but are unrelated settings.