
![]()

A GEN0 exercise was performed to enable our System Integration Team to gain experience quickly with the central issues to be faced in designing and implementing the GEN1 interface code. The choice of a suitable problem was complexit needed to be realistic enough to be instructive, but simple enough to do reasonably quickly. After careful consideration, we chose to base GEN0 on a "2-D Ideal Rocket" with the following features:
Combustion: mass is injected at a constant rate and temperature normal to the propellant surface. The propellant regresses at a pressure-dependent rate. | |
Fluids: the fully compressible Euler equations are solved using AXS, an explicit finite-difference code written by Xu. AXS uses a sophisticated 2nd order Runge-Kutta Total Variation Diminishing Essentially Non-Oscillatory scheme on a uniform stationary Cartesian grid, and tracks the combustion interface using the Level Set method [37]. | |
Structures: The propellant is taken to be homogeneous, linearly elastic, and incompressible. A Finite Element method with triangular elements provided by Geubelle is employed to solve a quasi-static system for the stress, given the load applied at the surface by the fluid pressure. This module is called only when output dumps are desired because the solution in the propellant does not affect the fluid. Since the interface moves, a new FE grid is generated each call. |
The figure below (left panel) shows pressure and stress at a very early time. Shock waves created by the injection of hot gas at the propellant surface travel inward. At later times these waves pass through each other and reflect off the propellant several times. The right panel shows the temperature at time 0.5 second, after which the flow has reached a quasi-steady state. Diamond-shaped shock fronts are visible (green) in the plume region.

Interpolation between the fluids and structures grids was performed in routines written by Jiao. Lin helped with optimization and parallel performance of AXS. Visualization and animation were done by Fiedler, Norris, Xu and Geubelle using Tecplot, Spyglass Transform, Imagemagick, and Adobe Premiere.
This problem was simple enough to be done in short orderinitiated in January, completed in Mayyet provided valuable experience in integrating the different component codes. It forced us to begin investigating issues such as dealing with the different time resolutions appropriate for advancing each component. The physical parameters used were derived from the Space Shuttle solid rocket booster. In addition to shedding light on various issues in component integration, the resulting GEN0 code provided the Computer Science Group with an initial starting point for performance optimization and other studies.
A small, focused team was assembled from among the Science Steering Committee, the first research scientists and programmers hired by the Center, and a few graduate students. The GEN0 team worked closely to identify the key elements of the propellant, core flow, and combustion interface required for the simple model. At least as important as the model results achieved were three lessons learned in this exercise: a small team of developers working closely together is an effective organizational strategy; mixing programming languages can be troublesome (but can be overcome); and visualization is essential for ensuring that both the problem formulation and implementation are correct.
As the first major step toward the GEN1 system code, we have developed a fully coupled, 3-D rocket simulation called GENH (H for half). GENH features:
Combustion: mass is injected at a pressure-dependent rate and fixed temperature normal to the propellant surface. Since the burn time is short, we neglect regression of the propellant, but not its motion driven by the pressure of the fluid. | |
Fluids: the fully compressible Euler equations are solved using ROCFLO, a shared-memory code developed by Alavilli and Tafti that uses body-fitted coordinates and is second order in time and space. | |
Structures: the propellant is taken to be linearly elastic and compressible. A finite element method employing brick elements provided by Namazifard, Parsons, and Hales is employed to solve Cauchys equation of motion, given the pressure applied at the surface by the fluid. It takes implicit time steps, which can be much larger than the steps taken by the fluid solver. |
The structures and fluids modules are fully coupled through an iterative scheme. Since the structures code uses an implicit time integration algorithm, it can take much longer time steps than can the fluids code, which takes explicit time steps. For each structures time step, the fluids code takes many fluids time steps using an estimate of the surface geometry from a previous structures time step. Once the fluids code reaches the end of the structures time step, estimated values of the pressure at the interface are available for the structures code for its implicit step. Next, the fluids calculation is repeated with updated surface geometry information from the structures code, and then the structures time step is repeated using updated pressure values from the fluids code. This cycle is repeated until some convergence criteria are satisfied, and then a new structures time step is begun.
Interpolation between the fluids and structures grids is avoided by constraining the two grids to coincide at the combustion interface, but we will soon generalize the interface code to allow different grids in the two modules.

The figure above shows several translucent isosurfaces for the gas temperature in the aft section of the rocket and in the nozzle after 0.1 seconds. Animations of the 3-D temperature, pressure, and Mach number were produced using Rocketeer, a package under development by Norris based on the Visualization Toolkit.
For more information see the GEN1 Status Page.