Earlier this month I concluded a short work rotation at NASA Glenn as part of my participation in the Pathways internship program. Of course, thanks to COVID-19, I wasn’t actually at NASA Glenn; I worked from my home here at Purdue – NASA Purdue, so to speak.
My task for the six weeks of my rotation was to develop a code for designing nozzles using the Method of Characteristics. Designing nozzles like this is nothing new; people have been doing it for decades. Surprisingly, though, there aren’t a lot of easily-accessible MoC tools out there; it seems like researchers and designers typically (A) write the tools they need on a case-by-case basis or (B) use proprietary tools particular to their organization. As might be expected, many of these codes are a little old-fashioned – written in older languages, and not necessarily very user-friendly.
With that in mind, my job was to start developing a more modern and usable MoC code for use within the propulsion community at NASA Glenn, with an eye towards potentially releasing the code as open-source at some point in the indeterminate future. One goal of the project was establishing an object-oriented architecture for solving MoC problems. Six weeks is not a lot of time to start developing a new code, but it was a fun challenge and I was able to get a prototype code working.
After much deliberation, I decided to name my Python package Mach Objects for Nozzle Tracing and Evaluation, or, to my amusement, the MONTE Python package. It consists of a series of Python class objects which contain the mathematical logic necessary to construct a MoC solution. The idea is that the objects do all the heavy lifting – each characteristic can figure out what it’s going to intersect with next; each surface can find its own angles; each intersection can keep track of the incoming and outgoing characteristics and perform the necessary reflections or refractions.
Much like with my work at the von Karman Institute, I prepared a few slides to explain the project as simply as possible for the benefit of my friends and family. I am including those slides below as a brief summary of the project for any interested parties!