The ESTCj user guide and example book in PDF: pdf-estcj-user-guide Equilibrium Shock Tube Conditions, Junior

This program can be used to estimate flow conditions for shock-processed flows typical of high-performance shock-tunnels and expansion tubes. The gas is assumed to remain in thermochemical equilibrium and the flow processing is done in decoupled quasi-one-dimensional wave processes such as shock waves and expansion fans. For the reflected shock tunnel, this means that the initial, quiescent test gas is first processed by the incident shock and subsequently by the reflected shock. The incident shock sets the inflow conditions for the reflected shock but there is no further interaction.

The program can do a number of calculations:

  • flow in a reflected shock tube with or without a nozzle
  • pitot pressure from free-stream flow condition
  • stagnation (total) condition from free-stream condition
  • code surface condition from free-stream condition

When run as an application, this program takes its input as command line arguments, performs the requested calculations and outputs the gas-state results. To see what specific inputs are required, start the program as:

$ --help

Which particular input parameters you need to supply depends on the chosen task, however, a typical flow condition for the T4 shock tunnel with the Mach 4 nozzle may be computed using:

$ --task=stn --gas=air --T1=300 --p1=125.0e3 --Vs=2414 --pe=34.37e6 --ar=27.0

The full output is a bit too much to include here, but you should see that this condition has an enthalpy of 5.43 MJ/kg and the nozzle-exit condition has a pressure of 93.6 kPa and a static temperature of 1284 degrees K, with a flow speed of 2.95 km/s.

The default gas model is based on calling the NASA CEA2 program to compute thermochemical properties of the gas, however, there is the option to select the thermochemical gas model used by Eilmer3 (libgas) and an ideal gas. Note that the libgas model is essentially a “frozen” gas model but equilibrium chemistry can be obtained implicitly via a look-up table gas description. To repeat the T4 calculation with a libgas look-up table for air, use:

$ --task=stn --model=libgas --gas=cea-lut-air-ions.lua.gz --T1=300 --p1=125.0e3 --Vs=2414 --pe=34.37e6 --ar=27.0

To see the available gases for a particular gas model, use the –list-gas-names option.

Getting the program set up is not a stand-alone file. It comes as part of the cfcfd3 compressible-flow collection and depends upon functions from the cfpylib library to do the specific calculations. The easiest way to get started is to build and install from the nenzfr directory where this source file resides:

$ cd app/nenzfr/
$ make install

You may then call upon so long as you have suitable enviroment variables set, as per the installation instructions for Eilmer3.

Some History

Since 1968, we have been using the ESTC code by Malcolm McIntosh to compute the conditions in the end of the reflected shock tubes T1–T5 and HEG. There are a number of problems in using the ESTC code, including uncertainty in updating the chemistry coefficients. This program, ESTCj, moves away from the old chemistry model by making use of the CEA code from the NASA Glenn Research Center.

Functions and classes of interest

estcj.reflected_shock_tube_calculation(gasModel, gasName, p1, T1, Vs, pe, pp_on_pe, area_ratio, task)

Runs the reflected-shock-tube calculation from initial fill conditions observed shock speed and equilibrium pressure.

This function may be imported into other applications (such as nenzfr).

  • gasModel – pointer to the gas model (cea2_gas or libgas_gas)
  • gasName – name of the specific gas model to create via make_gas_from_name()
  • p1 – fill pressure of gas initially filling shock tube
  • T1 – fill temperature of gas initially filling shock tube
  • Vs – observed incident shock speed
  • pe – observed pressure once shock-reflected region reaches equilibrium
  • pp_on_pe – specify this ratio if we want the supersonic nozzle expansion to terminate at a particular Pitot pressure
  • area_ratio – specify this ratio if we want the supersonic nozzle expansion to proceed to a particular quasi-one-dimensional area ratio.
  • task – one of ‘ishock’, ‘st’, ‘stn’, ‘stnp’

Most of the interesting computation is delegated to the cfpylib modules gas_flow and cea2_gas.