NASA Logo - Web Link to Vertical Line

+ Text Only Site
+ Non-Flash Version
+ Contact Glenn

NASA Meatball Image

MOC Nozzle Simulation


This is the beta 1.15c version of the MOC Nozzle program, and you are invited to participate in the beta testing. If you find errors in the program or would like to suggest improvements, please send an e-mail to

Due to IT security concerns, many users are currently experiencing problems running NASA Glenn educational applets. There are security settings that you can adjust that may correct this problem.

This page contains an interactive Java applet to explore the various factors which affect the performance of a supersonic nozzle. All of the information presented by the applet are available within the Beginner's Guide to Compressible Aerodynamics and the Beginner's Guide to Propulsion.

MOC Nozzle Simulation

****** WARNING ******** WARNING ********* WARNING ********** WARNING ******* WARNING *******

This program is being developed for the ARMD Fundamental Aero Hi-Speed Program. It uses the classic Method of Characteristics (MOC) technique to design a jet nozzle and analzye the internal flow field, the plume, and the external flow near the nozzle exit. It can then determinine the interactions between these three flow fields. We are making it available for beta testing among the nozzle team members.
The code is constantly being modified and upgraded .. so there are lots of bugs in the code. It is not to be used for anything until we have identified and corrected the bugs .. and added all of the appropriate bells and whistles.

If you see only a grey box at the top of this page, be sure that Java is enabled in your browser. If Java is enabled, and you are using the Windows XP operating system, you may need to get a newer version of Java. Go to this link:, try the "Download It Now" button, and then select "Yes" when the download box from Oracle pops up.

If you experience difficulties when using the sliders to change variables, simply click away from the slider and then back to it. If the arrows on the end of the sliders disappear, click in the areas where the left and right arrow images should appear, and they should reappear. These are known Java problems.

****** WARNING ******** WARNING ********* WARNING ********** WARNING ******* WARNING *******

With this software you can investigate how an aircraft nozzle produces thrust by changing the values of different factors that affect thrust.

This is the first release of the MOC Nozzle Program. There are several different versions of the program that require different levels of knowledge of aerodynamics, experience with the package, and familiarty with computer technology. This web page contains the on-line version of the program. It includes an on-line user's manual which describes the various options available in the program and includes hyperlinks to pages in the Beginner's Guide to Propulsion, Rockets, and Compressible Aerodynamics describing the math and science of supersonic nozzles. More experienced users can select a version of the program which does not include these instructions and loads faster on your computer.

You can download these versions of the program to your computer by clicking on this yellow button:

Button to Download a Copy of the Program

With the downloaded version, you can run the program off-line and do not have to be connected to the Internet.

Application Version

Because of security limitations, Java applets, like the program shown above, are not permitted to read or write files. There is a special version of the MOC Nozzle Program that looks and works just like this version, but which allows the user to read and write restart files. With this feature, the user can save their current design for later analysis. The application version requires that the user has downloaded and installed the Java Devloper's Kit (JDK), and has some knowledge of runnning applications on your computer.


This program is designed to be interactive, so you have to work with the program. There are a variety of choices which you can make regarding the problem, analysis and the display of results. You make your selections by using a variety of graphical widgets which will be described here. A push button is a box with a label written over it. To operate a button, move the cursor over the button and left click with the mouse. Some push buttons occur in groups, and the chosen option is shown as a yellow "lighted" button. A drop menu has a descriptive word displayed in a box with an arrow at the right of the box. To make a choice, click on the arrow, hold down and drag to make your selection. The current values of the design variables are presented to you in text boxes. By convention, a white box with black numbers is an input box and you can change the value of the number. A black box with yellow, green. or cyan numbers is an output box and the value is computed by the program. To change the value in an input box, select the box by moving the cursor into the box and clicking the mouse, then backspace over the old number, enter a new number, then hit the Enter key on your keyboard. You must hit Enter to send the new value to the program. For most input variables you can also use a slider located next to the input box. Click on the slider bar, hold down and drag the slider bar to change values, or you can click on the arrows at either end of the slider.


The program screen is divided into three main parts:

  1. On the top of the screen is the View Window. The view window includes a graphic of the nozzle that you are designing and several buttons which control the graphic. Details of the window are given in the Graphics section of this page.
  2. On the lower left side of the screen is the Input Window. Various input panels are displayed in this window. You select the input panel by using the push buttons labeled "Input:" above the left panel. The lighted button indicates which input panel is being displayed. Details of the input variables are given below.
  3. On the lower right side of the screen is the Output Window. The output can be presented as overall nozzle performance, details of the flow and MOC grid geometry, a color bar used in connection with contour plots in the view window, a recorded value of the nozzle surface geometry, and certain diagnostics used during debugging of the program. You select the type of output displayed by using the push buttons labeled "Output:" above the right panel. Details of the output variables are given below.


The View Window contains a schematic drawing of the nozzle that you are designing or analyzing and some buttons and slider to control the size and location of the schematic drawing. Here are some examples of the use of these buttons: Possible choices are colored blue while the selected option is colored yellow.

  1. You can move the drawing within the view window by moving the cursor into the window, holding down the left mouse button, and dragging the graphic to a new location. If you lose the image, you can restore it by hitting the red Find button at the upper right of the window.
  2. You can vary the size of the drawing in two ways. On the left side of the view window is the zoom slider. Click on the black bar and move it up or down to increase or decrease the size of the drawing. At the bottom of the slider is the word "Zoom" and below that are two boxes labeled + and -. Clicking on the "+" button doubles the size of the drawing, clicking on the "-" button halves the size of the drawing.
  3. There are three buttons to the right of the top of the zoom slider that control the display of the flow field. The default display is the MOC Mesh of left and right running characteristic lines. If you use the "Flow-Geometry" output option to analyze the flow field, you can select an intersection of left and right running rays. The location of your selected point is shown by a red circle at the intersection. By default, only the upper half of a symmetric nozzle is displayed. You can display the whole nozzle by clicking on the Reflect button. If you click on the Plot button, the flow field is displayed as a color contour plot instead of the MOC mesh. A new output panel will appear at the lower right which allows you to select the variable to display and the range of variables.


There are several different input options available for the Input Window at the lower left. You select the type of input by using the push buttons located above the input panel beside the "input" label. There are currently three different input panels that include different groups of input variables.

  1. The default input panel is the Analysis panel. This panel controls the type of problem that you will study, and certain parameters associated with the MOC analysis. We will discuss the various input parameters, starting at the top of the panel. The Problem drop menu lists all of the problems that the program can solve. As new problems are added to the program, this input list will expand. There are currently (July, 2014) nine possible problems to study. (The drop menu widget only lists eight items at a time, so you must use the scroll bar on the right to display the additional item.) The MOC analysis solves for flow conditions along left running and right running rays. You can select the number of rays used in the analysis by typing into the input box (the default is 30). The greater the number of rays, the more accurate the solution, but the more time that is needed to make the calculation. For the nozzle calculation, flow is assumed to be choked at the nozzle throat and the flow then expands into the internal nozzle. Ideally, the throat would be a sharp edged surface. But in reality, a boundary layer grows along the surface and this boundary layer can separate if the throat edge is too sharp. The throat is often curved to prevent separation. The amount of curvature of the throat is controlled by the Del X parameter. Finally, when designing a plug nozzle (problem #5 on the menu), some of the expansion occurs internal to the cowl and some expansion occurs external to the cowl. The relative amount of internal and external expansion affects the shape of the plug surface.

  2. The chief input panel is the Internal panel. This panel sets the values for most of the design parameters. Beginning at the top of the panel we will discuss the various input parameters. The design Mach number is the desired Mach number at the exit of the nozzle. The flow is assumed to be choked at the throat and the throat area, in square inches, then determines the airflow through the nozzle. The width of a 2D nozzle, expressed in inches, is combined with the throat area to define the height of the nozzle. The upstream length is only used in the schematic drawing; its value is not used anywhere in the performance analysis. The plenum total pressure in pounds per square inch (psi), and total temperature in degree Rankine, are also used to determine the airflow through the nozzle. The airflow times the exit velocity determines the thrust. The value of the plenum pressure also affects the value of the exit static pressure which determines whether the flow is over-expanded or under-expanded. The total temperature affects the flow temperature throughout the nozzle which in turn affects the value of the specific heat ratio. The specific heat ratio appears in many of the isentropic flow equations. You can either let the program compute the local value of specific heat ratio as a function of temperature, or you can input a constant value using the drop menu.

  3. The External panel sets the values of flow parameters in the free stream, outside the nozzle, and along the edge of the plume. Beginning at the top of the panel we will discuss the various input parameters. The program can be run in three different modes: internal flow and design, internal flow plus plume, or internal flow, plume and external (supersonic) flow. You select the mode by using the drop menu at the top of the panel. For plume calculations, you can have the program produce several cycles for the schematic drawing by entering the number of plume cycles. The external Mach number is the free stream Mach number. The altitude, in feet, determines the free stream static pressure and temperature and affects the shape of the plume. The external cowl angle in degrees sets the boat-tail angle and amount of flow expansion that occurs on the external surface of the nozzle when the free stream is supersonic.


There are several different output options available for the Output Window at the lower right. You select the type of output by using the push buttons located above the output panel beside the "output" label. There are currently four different output panels that include different groups of output variables.

The default output panel is the Flow-Goemetry panel. It is used with the schematic drawing in the View Window to survey the flow field. At the bottom of the panel is the MOC grid information, displayed in black output boxes with cyan numbers. The grid is defined by left running rays, L, and right running rays, R. Specifying an L-R combination defines a location in the grid. The location is marked in the schematic by a red circle (or box, for the field method). The streamwise, X, location relative to the throat and the vertical, Y, location relative to the centerline are shown at the lower right. For the field method, the X-Y location of each corner of the field is displayed. You can select L-R combinations by either entering known values into the input boxes, or by using the L+, L- and R+, R- buttons on either side of the input boxes to increment the values. For 2-dimensional problems, there are Riemann invariant variables, Q and R, which maintain a constant value along the R and L rays respectively. Q is equal to the sum of the Prandtl-Meyer angle and the flow turning angle. R is the difference between these two angles. Variables alpha and beta are angles used during de-bugging of the program.

At the top of the Flow-Goemetry panel are the values of flow variables at the selected L-R combination, displayed in black output boxes with green numbers. There are three flow domains that may be studied: the internal flow, the external flow , and the jet plume. The user selects the flow domain by using the drop menu labeled "Flow". For the external and plume domains, a zone number appears on the schematic and a drop menu appears at the right of the output panel to select an output zone. The geometry variables do not function for the external and plume domains. From left to right, and from top to bottom, the output flow variables include: Mach number at the selected location, static temperature in degree Rankine, static pressure in pounds per square inch (psi), deflection angle in degrees from the previous (upstream) location, accumulated flow turning angle in degrees from the throat, compressible area ratio which is a function of Mach number, the upstream Mach number, Prandtl-Meyer angle in degrees, Mach angle in degrees, Shock angle in degrees for the given deflection, upstream total pressure ratio, accumulated total pressure ratio from the throat, upstream static pressure ratio, upstream static temperature ratio, upstream density ratio, static pressure ratio relative to the throat, static temperature ratio relative to the throat, and density ratio relative to the throat. The "upstream" location is the MOC grid point at R-1 or L-1.

The Performance output panel describes the entire nozzle. Output is displayed in black output boxes with yellow numbers. In the following descriptions, the word exit refers to flow coming out of the nozzle. The exit is the end of the internal portion of the nozzle and the beginning of the plume. The word external refers to the flow around the outside of the nozzle, from free stream conditions to the end of the nozzle. If the external portion of the nozzle has a cowl angle, this produces a boat-tail that faces aft. If the cowl angle is zero, then the free stream (ambient) conditions are the same as the boat-tail conditions. For some nozzle problems, the program will generate a surface curve to produce a uniform exit flow. For other problems, the geometry is specified and the program computes the resulting, normally non-uniform, exit flow. For the non-uniform cases, some of the performance variables are averaged, using area weighting, and are noted in the labels by the letters "av".

From left to right and top to bottom, the output flow variables include: gross thrust measured in pounds, external drag measured in pounds (if the external supersonic flow is included), net thrust which is the difference between gross thrust and external drag, weight flow in pounds per second for choked flow at the throat, exit velocity in feet per second, exit Mach number which is the ratio of the exit velocity to the speed of sound at the exit conditions, exit static temperature in degree Rankine, exit static pressure in pounds per square inch (psi), and exit area in square feet. The next six output variables are significant if a supersonic external flow is included. As part of the input conditions, the user specifies the external Mach number, altitude, and external cowl angle. This produces a centered isentropic expansion at the shoulder of the nozzle, which sets the external Mach number at the end of the nozzle. The external cowl angle produces a boat-tail area in square feet. The ambient static pressure, in pounds per square inch, is a function of the altitude. But as the flow is expanded around the external shoulder, the boat-tail static pressure is computed from isentropic relations for the external Mach number. The difference between the exit pressure and ambient pressure times the exit area is a correction term in the gross thrust equation. The ratio of exit pressure to boat-tail pressure determines whether the nozzle is over-expanded (ratio less than one), or under-expanded (ratio greater than one). An over-expanded nozzle causes a shock to be generated in the plume and an expansion fan to be generated in the external flow to balance static pressures. An underexpanded nozzle generates an expansion fan in the plume and a shock into the external flow. The next six ouput parameters are related to the nozzle geometry. Height of the throat is equal to the throat area divided by the width for a 2D nozzle, and the throat radius for an axisymmetric nozzle, expressed in inches. The throat area is an input design parameter in square inches, the exit area ratio is a function of the input exit Mach number and is dimensionless. X-exit, Y-exit, and Z-exit describe the location of the exit plane in inches. The last three variables were used for diagnostic purposes during check-out of the program. The cowl exit Mach number was used with the plug nozzle design option. The plume static pressure was used to check the plume calculations when a supersonic external flow was present. And the exit Prandtl-Meyer angle was checked for plug nozzle calculations. Finally, the average divergence angle of the flow is computed. This variable is zero for design problems and some positive value for non-uniform cases.

If the user selects the contour Plot option for the graphics display, the Color Bar output panel will appear. The color bar is a spectrum from black at the lowest value to white at the highest value. The program interogates the computed flow field and displays the highest and lowest values of a selected output variable in the boxes labeled Max and Min. These boxes are input boxes, and the user can over-ride the max and min values by typing in their own values and pushing the Set button at the far right. Pushing the Find button tells the program to re-interrogate the flow field and to re-set the max and min values. There are currently four choices for output variable: static pressure in pounds per square inch (psi), static temperature in degree Rankine, Mach number, and flow turning in degrees. Using the output selection buttons, the user may continue to display the contour plots, but change the output panel to Performance or Flow-Geometry as desired. You can always return to the color bar output panel by pushing the appropriate button above the panel.

If the user selects the Record output option, a text window will appear on the output panel. The text window displays the X-Y geometry pairs for the inside surface of the nozzle. This option is useful when you are designing a nozzle contour. The displayed X and Y values are non-dimensionalized by the throat height and X = 0 at the throat.


The Hi Speed Project of NASA's Fundamental Aero Program has supported development of MOC Nozzle. The associated educational materials have been developed through the NASA Glenn Educational Programs Office. Based on user input, and continued support, we will continue to update and modify the simulation. Changes from previous versions of the program include:

  1. On 14 Aug 14, version 1.15c was released. This version of the code corrects the calculation of the thrust for the non-uniform exit cases to include the divergence effects. It also calculates averages of the exit pressure, temperature, Mach number, exit velocity, and divergence angle. The exit velocity is streamwise.
  2. On 30 Jul 14, version 1.15b was released. This version of the code is quite similar to 1.14h but many of the buttons were moved to make this version identical to the application version.
  3. On 27 Jul 14, version 1.14h was released. This is the first release version for MOC Nozzle. Earlier versions of the program were developmental versions and not released to the general public.

Guided Tours


Button to Display Aerodynamics Index Button to Display Propulsion Index Button to Display Hi Speed Aero Index Button to Display Model Rocket Index Button to Display Wind Tunnel Index
Beginner's Guide to Aeronautics


     First Gov Image

+ Inspector General Hotline
+ Equal Employment Opportunity Data Posted Pursuant to the No Fear Act
+ Budgets, Strategic Plans and Accountability Reports
+ Freedom of Information Act
+ The President's Management Agenda
+ NASA Privacy Statement, Disclaimer,
and Accessibility Certification


NASA Logo   
Editor: Nancy Hall
NASA Official: Nancy Hall
Last Updated: May 13 2021

+ Contact Glenn