Software · Propellant evaluation for rocket motor design

RustPEP

A complete rewrite of the classic PROPEP program in Rust, with a modern desktop interface for Windows and Linux. Enter a propellant recipe and get chamber temperature, specific impulse, characteristic velocity and combustion products, ready to carry into BurnSim.

DownloadQuick startVersion 0.1.0

Then and now

The same calculation, without the fixed-width report.

PROPEP answers with a text report. RustPEP is a complete rewrite in Rust with a modern desktop interface, built for the future. It runs on Windows and Linux, and a macOS version is planned next.

Classic PEP text report

PROPEP text report
  CODE                                   WEIGHT    D-H  DENS      COMPOSITION
   137 AMMONIUM PERCHLORATE (AP)         68.000   -602  0.07040    1CL  4H   1N   4O
   845 R45 HTPB (UTC)                    20.000      5  0.03360  981H 654C   6O
    63 ALUMINUM (PURE CRYSTALINE)        12.000      0  0.09760    1AL

THE PROPELLANT DENSITY IS 0.05938 LB/CU-IN OR  1.6436 GM/CC
  …
**********PERFORMANCE:  FROZEN ON FIRST LINE, SHIFTING ON SECOND LINE**********

 IMPULSE   IS EX      T*      P*      C*    ISP*  OPT-EX  D-ISP      A*M   EX-T
   248.8  1.2204    2473   38.08  4987.5            8.43  408.8  0.15505   1283
   250.8  1.2023    2506   38.41  5022.7   193.3    8.56  412.2  0.15615   1326
The report from the classic text version of PROPEP: fixed-width columns, abbreviated headings and ingredients listed by code number.

RustPEP

RustPEP Formulation page: a searchable ingredient list, a three-ingredient recipe, chamber and exit pressure fields, and result tiles for specific impulse, characteristic velocity, chamber temperature, density, gamma and molecular weight.

Names instead of code numbers

The text report identifies each ingredient by a code number. RustPEP searches more than 1,000 ingredients by name and shows formula, density and heat of formation as you browse.

Labelled results with units

Specific impulse, c*, chamber temperature, density and gamma appear as named values with their units, and recalculate as you type.

Charts, comparison and fitting

One report describes one recipe at one condition. RustPEP sweeps a variable and charts it, compares recipes side by side, and fits burn rate from test firings.

What it does

From recipe to the numbers a motor simulation needs.

01

Equilibrium performance

Chamber temperature, specific impulse (frozen and shifting), characteristic velocity, density, gamma, molecular weight and combustion products for a propellant recipe.

02

Ingredient and propellant libraries

More than 1,000 ingredients from the PEPCODED file, your own custom ingredients, and a library of published reference formulations to load and adjust.

03

Studies

Sweep one ingredient, chamber pressure or nozzle expansion ratio and chart the result. A peak-Isp finder locates the best percentage in a range.

04

Side-by-side comparison

Compare up to four recipes, with differences shown against the first column.

05

Burn-rate characterization

Enter BATES grain test firings at different pressures and fit the coefficient and exponent of r = a·Pⁿ.

06

Export

A BurnSim propellant summary to copy or save, results as CSV, a one-page PDF data sheet, and ingredient files in PEPCODED format.

A look around

Every page of the application.

RustPEP Propellant Library page showing cards for sugar and composite formulations, each with its mix, source and a Load button.
Propellant LibraryPublished and reference formulations, each with its source. Load one and adjust it.
RustPEP Studies page with a line chart of shifting and frozen specific impulse against ammonium perchlorate percentage, and the current recipe marked.
StudiesSweep one ingredient, chamber pressure or expansion ratio and see the curve.
RustPEP Compare page with two recipes in columns and rows for specific impulse, characteristic velocity, chamber temperature, density and other results, with differences under the second column.
CompareUp to four recipes side by side, with differences shown against the first column.
RustPEP Burn Rate page with a table of three test firings, tiles for the fitted coefficient, exponent and fit quality, and a chart of burn rate against chamber pressure.
Burn RateEnter BATES test firings and fit the coefficient and exponent of r = a·Pⁿ.
RustPEP Export page showing a text propellant summary with Copy and Save buttons, and sections for a PDF data sheet and PEPCODED ingredient export.
ExportA BurnSim propellant summary to copy, plus CSV, a PDF data sheet and PEPCODED records.

Specifications

Technical details

Application
Current version0.1.0
PlatformsWindows, 64-bit (x64); Linux, 64-bit (x86_64)
Minimum Windows versionTo be determined
macOSPlanned; no release date set
Windows packagesSetup program (.exe), MSI installer, portable .zip
Linux packagesDebian package (.deb), RPM package (.rpm)
Command-line runnerPart of the project; packaging not finalized
Calculation
MethodChemical equilibrium, ported from the Naval Weapons Center Propellant Evaluation Program (PEP)
Product databasesNASA Glenn CEA (default); legacy JANNAF 1986 for PROPEP-compatible results
Ingredient dataPEPCODED file, 1,000+ ingredients, plus user-defined ingredients
StudiesIngredient mix, chamber pressure, nozzle expansion ratio; peak-Isp finder
Burn-rate modelr = a·Pⁿ fitted from BATES test firings
Output
UnitsImperial and SI on the burn-rate page; pressures entered in psi
Export formatsBurnSim summary (text), CSV, PDF data sheet, PEPCODED ingredient records

Credits and data sources

Standing on published work.

  • Equilibrium method: a port of the Naval Weapons Center Propellant Evaluation Program (PEP), IBM PC version compiled by Martin Marietta in 1989 and released free of charge.
  • Product thermodynamic data: NASA Glenn CEA thermo.inp (Apache License 2.0), and the JANNAF 1986 data distributed with PEP.
  • Ingredient data: the PEPCODED file distributed with PEP.
  • Sugar propellant formulations: Richard Nakka’s Experimental Rocketry site.

BurnSim is a separate program by its own author. RustPEP exports values for use in it and is not affiliated with it.

Try RustPEP.

Version 0.1.0 for Windows and Linux.