Use when the task is solid rocket motor design, grain sizing, or ballistics estimation. Size and analyze solid propellant rocket motors from first ballistics: compute the Vieille burn rate from the pressure exponent, solve the chamber pressure equilibrium between propellant burn rate and choked throat discharge, evaluate grain geometry with web thickness and burn area, and derive mass flow, thrust, and total impulse from the characteristic velocity c*. Uses typical AP/HTPB composite propellan...
Scanned 9/27/2026
Install to Claude Code
npx -y skills add ashfordeOU/aero-agent-skills --skill solid-rocket-motor --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Solid Rocket Motor?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ashfordeou-solid-rocket-motor)More formats (shields.io, HTML) on the badges page.
---
name: solid-rocket-motor
description: "Use when the task is solid rocket motor design, grain sizing, or ballistics estimation. Size and analyze solid propellant rocket motors from first ballistics: compute the Vieille burn rate from the pressure exponent, solve the chamber pressure equilibrium between propellant burn rate and choked throat discharge, evaluate grain geometry with web thickness and burn area, and derive mass flow, thrust, and total impulse from the characteristic velocity c*. Uses typical AP/HTPB composite propellant parameters and judges the burn neutrality, regressivity, or progressivity of the grain. Produce the motor ballistics summary with the equilibrium chamber pressure, burn time, thrust, and impulse. Trigger: solid rocket motor, grain geometry, burn rate, chamber pressure, total impulse, characteristic velocity, web thickness."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
- id: ecss
reference-only: true
gated: false
domain: propulsion
pack: propulsion
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
domain: propulsion
subdomain: rocket
tags: [solid-rocket-motor, burn-rate, chamber-pressure, grain-geometry, mass-flow, thrust, total-impulse, characteristic-velocity, web-thickness, burn-progression]
version: 0.1.0
author: Aero Agent Skills
---
# Solid Rocket Motor (propulsion/rocket/solid-rocket-motor)
Use when the task is solid propellant rocket motor design and ballistics:
burn-rate law, chamber pressure equilibrium, grain geometry and web
thickness, mass flow through the throat, thrust, and total impulse.
This leaf is the ballistic core of the rocket pack; it pairs with
propulsion/rocket/nozzle-design (exit flow and thrust terms downstream
of the chamber) and with propulsion/rocket/combustion-chamber-design,
propulsion/rocket/propellant-selection, and propulsion/rocket/rocket-sizing.
## Domain quick reference
- Burn-rate law (Vieille / St. Robert): the regression rate of the
burning surface is r = a * p^n, with pressure exponent n typically
0.2 to 0.5 for composite propellants and coefficient a set so that
rates of 2 to 8 mm/s result at operating pressure.
- Chamber pressure equilibrium: the pressure settles where the mass
generated by the burning surface, rho_p * A_b * r, equals the choked
mass flow through the throat, p_c * A_t / c*. Solving gives
p_c = (rho_p * a * A_b * c* / A_t)^(1/(1-n)). The exponent is
singular at n = 1: no finite equilibrium exists in that limiting case.
- Grain geometry: the web is the thickness of propellant consumed
normal to the burning surface; burn time is web / r. For a tubular
grain the inner-bore burn area is pi * D_inner * L, ignoring end
faces.
- Burn progression: a burn area that grows as the web burns is
progressive, one that holds is neutral, one that shrinks is
regressive. Progressive grains raise pressure and thrust over the
burn; regressive grains decay; neutral grains hold a plateau.
- Mass flow: m_dot = p_c * A_t / c* (choked throat), equal at
equilibrium to rho_p * A_b * r.
- Thrust: F = Isp * g0 * m_dot, with g0 = 9.80665 m/s^2.
- Total impulse: I_t = F * t_b, or equivalently Isp * g0 * m_prop.
- Characteristic velocity: c* = sqrt(R * T_c / (gamma *
(2/(gamma+1))^((gamma+1)/(gamma-1)))); typical AP/HTPB values near
1550 to 1600 m/s.
- Typical composite propellant (AP/HTPB): ammonium perchlorate oxidizer
in a hydroxyl-terminated polybutadiene binder, density about 1700 to
1850 kg/m^3, sea-level specific impulse about 240 to 260 s.
- Units are SI throughout: Pa, m, m^2, m/s, kg/s, K, N, N*s.
- ECSS space-systems standards frame the rocket propulsion context;
the ballistics relations above are standard engineering methodology,
summary-only.
## Workflow
1. Collect the propellant data: density rho_p, burn-rate coefficient a
and exponent n, and the chamber temperature, gamma, and gas constant
R for the characteristic velocity.
2. Compute the characteristic velocity with characteristic_velocity.
3. Choose the grain geometry and throat area; get the burn area with
tubular_grain_burn_area (or the equivalent for the chosen geometry)
and the web thickness.
4. Solve the equilibrium chamber pressure with
equilibrium_chamber_pressure.
5. Get the operating burn rate with burn_rate at that pressure.
6. Compute the mass flow with mass_flow (or burn_mass_flow as the
burn-side cross-check) and the thrust with thrust_from_isp.
7. Estimate the burn time with web_burn_time and the total impulse
with total_impulse, cross-checked by
total_impulse_from_propellant.
8. Judge the grain with burn_area_verdict from the initial and final
burn areas (progressive, neutral, or regressive).
9. Confirm the deterministic checks with the contract test
scripts/test_solid_rocket_motor.py.
## Worked example
A tubular AP/HTPB grain with rho_p = 1800 kg/m^3, a = 2.0e-5 m/s per
Pa^n, n = 0.3, inner-bore burn area A_b = 0.14 m^2, throat area
A_t = 1.0e-4 m^2, and c* = 1600 m/s:
- Equilibrium pressure: p_c = (1800 * 2.0e-5 * 0.14 * 1600 / 1.0e-4)
^(1/0.7), about 10.2 MPa.
- Burn rate at equilibrium: r = a * p_c^n, about 2.5 mm/s.
- Mass flow: p_c * A_t / c*, about 0.64 kg/s (the burn side
rho_p * A_b * r matches within rounding).
- Thrust at Isp = 250 s: F = 250 * 9.80665 * 0.64, about 1.57 kN.
- Burn time for a 20 mm web: t_b = 0.02 / 0.0025, about 7.9 s.
- Total impulse: F * t_b, about 12.4 kN*s, matching
Isp * g0 * m_prop with the propellant mass rho_p * A_b * web = 5.04 kg.
A grain whose inner bore grows as it burns gives a growing burn area
and is progressive; a sliver or rod geometry that loses surface is
regressive; a star or wagon-wheel geometry cut for constant surface is
neutral.
## Related leaves
- propulsion/rocket/nozzle-design: exit Mach, choked mass flow, exit
velocity, and thrust with the pressure term downstream of the chamber.
- propulsion/rocket/combustion-chamber-design: chamber geometry and
structural sizing around the ballistic solution.
- propulsion/rocket/propellant-selection: propellant families and
their burn-rate and impulse properties.
- propulsion/rocket/rocket-sizing: motor selection and sizing inside
the full launch vehicle mass and performance loop.
## Pitfalls
- Assuming a neutral grain stays neutral as the web burns: the burn
area verdict must be re-checked for the geometry - a tubular bore
that grows with web is progressive, a sliver or rod that loses
surface is regressive, and only a star or wagon-wheel cut for
constant surface is neutral.
- Setting the pressure exponent near unity: the equilibrium solution
p_c = (rho_p * a * A_b * c* / A_t)^(1/(1-n)) is singular at n = 1 -
no finite chamber pressure exists in that limiting case, and the
module rejects it rather than returning a huge pressure.
- Balancing the chamber on the throat side alone: equilibrium requires
the burn-side mass flow rho_p * A_b * r to equal the choked throat
flow p_c * A_t / c*; the worked example cross-checks both sides
(about 0.64 kg/s each), so a mismatch between them means an input
error, not a motor quirk.
- Mixing burn-rate coefficient units: with r = a * p^n the coefficient
a is expressed per Pa^n (2.0e-5 m/s per Pa^n in the example) - a
coefficient tabulated in other pressure units shifts the whole
pressure equilibrium.
- Feeding zero burn area or zero throat area: both raise rejection
because the equilibrium has no physical content - a zero throat with
a burning grain would pressurize without bound.
- Reporting thrust without the impulse check: total_impulse from F * t_b
must match Isp * g0 * m_prop (about 12.4 kN*s both ways in the
example); the propellant-mass route catches thrust or burn-time
slips.
## Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 scripts/test_solid_rocket_motor.py
The test covers the burn-rate law and exponent thresholds, the
characteristic velocity band, the chamber pressure equilibrium
identity (burn-side mass flow equals choked throat mass flow), the
n = 1 limiting case, zero burn area and zero throat area rejection,
mass flow, thrust, total impulse from thrust and from propellant mass,
tubular grain burn area, web burn time, and the burn progression
verdict.
## Compliance
- Standards referenced, not reproduced: ECSS is a free ESA download
(ecss.nl/standards); solid propellant ballistics is standard
engineering methodology, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!