Projects

Portfolio

Liquid Rocket Engine Sizing Code

Portfolio

Liquid Rocket Engine Sizing Code

Drawing from my involvement with Sun Devil Rocketry and SEDS Rocketry Division, I developed a Python-based codebase to streamline liquid rocket engine (LRE) sizing calculations for the APEX club. Recognizing how painful manual propulsion calculations can be, I created scripts to automate the calculations. This is not just combustion chemistry, but calculations for blade angles on impellers, too, for example. The fundamental goal of this project was to develop a toolset in which the APEX Club (the turbomachinery-centric club I've mentioned here elsewhere), could rely on for faster iterative development.


Project Overview and My Role

As the sole developer, I designed a modular Python codebase to compute critical LRE parameters. This includes but isn't limited to specific speed, flow coefficients, and head changes. I used a variety of sources to put together all the governing equations, notating key assumptions of course, along the way. All sources are compiled below, but to gloss over them briefly: a SpaceX engineer wrote a solid retrospective involving equations and calculations he used to develop his own turbopump. In addition, Rocket Propulsion Elements was a great source as well, considering it does a good job of explaining the assumptions involved in using each governing equation (usually).



Codebase Components

  • Impeller Geometry: I programmed an Impeller class to calculate specific speed (Omega_s), exit flow coefficient (φ_t), and head coefficient (ψ_h). This ensured optimal impeller sizing for centrifugal pumps.


  • Profile and Blade Curves: I implemented equations for eye radius (r_eye), exit radius (r_exit), inlet/outlet angles (β_inlet, β_outlet), and hydraulic efficiency (η_HY).


  • Inducer and Volute: My scripts computed net positive suction head (NPSH_se), suction specific speed (S_s), and volute head changes.


  • Thermodynamic Analysis: The Thermo class calculated entropy generation and enthalpy changes to support the combustion chemistry calculations.


Development Process

  • I initially started scripting randomly as I profusely consumed Rocket Propulsion Elements. In fact, there was no plan for this to be a project at all in of itself, but rather, a means to an end. As I progressed through Rocket Propulsion Elements, as well as the Turbopump Retrospective, I came to realize that there was something here. So eventually, I revamped my initial efforts from the ground up. As shown below, I started thinking more deeply about how to actually structure these scripts in a way that made them modular, troubleshootable, and downright beautiful.
  • Then came the development


I defined requirements based on turbopump design standards (e.g., pressure changes, flow rates), conducted exploratory analyses to validate equations, and optimized scripts for accuracy using NumPy. I tested the codebase with sample inputs (e.g., ω=20,000 RPM, Q=1 m³/s), refining outputs like ΔH and φ_t to align with industry ranges. The modular structure allows easy updates for future engine designs.

Verification and Validation

I validated calculations against reference values (e.g., φ_t = 0.2–0.3) and used Matplotlib to visualize results, ensuring numerical stability. Unit tests confirmed equation accuracy for various input scenarios, enhancing reliability for APEX’s propulsion projects.

Summary

  • Developed a Python codebase automating LRE turbopump sizing.
  • Streamlined complex calculations, saving design time for APEX.
  • Mastered Python, NumPy, and propulsion engineering principles.
  • Created a scalable toolset for student-led rocket development.

Live Preview