Worked example

Flight envelope placard

Feed a Mach–altitude test matrix in, get a gated placard table out.

sweepGatesread_table / write_tableFittedNormalShock

Run it

cargo run --release -p avionics_examples --example flight_envelope_placard
Runtime
well under a second
Exercises
sweep · Gates · read_table / write_table · FittedNormalShock

Measured

  • max q = 23.7 kPa at M 1.20 / 11.0 km, inside the 60 kPa placard
  • max T0 = 1502.1 K at M 5.00 / 40.0 km, inside the 1700 K placard
  • 16 of 16 matrix rows computed

No grid and no time stepping. A CSV of Mach–altitude points goes in, each point is evaluated through closed-form relations, and a gated table comes out.

The study shape is the same one the marched examples use. The sweep combinator driving sixteen closed-form evaluations here drives four concurrent Navier–Stokes marches in the VIV example.

What runs per row

Each matrix row is a flight condition. For each one the example computes dynamic pressure, takes the exact Rankine–Hugoniot jump through FittedNormalShock to get the post-shock stagnation temperature, and applies the Sutton–Graves correlation for stagnation-point heating.

Nothing here is iterative. Every quantity is a closed-form function of Mach, altitude and the atmosphere table.

Output

   M   alt[km]  q[kPa]   T0[K]   qdot
 0.50      5.0     9.5   268.5   0.09
 ...
 5.00     40.0     5.0  1502.1   6.21
 5.00     36.0    11.8  1444.9   9.15   <- hottest heating

[PASS] q-max placard: max q = 23.7 kPa at M 1.20 / 11.0 km, inside the 60 kPa placard
[PASS] stagnation temperature: max T0 = 1502.1 K at M 5.00 / 40.0 km, inside the 1700 K placard
[PASS] matrix integrity: 16 of 16 matrix rows computed

Peak dynamic pressure, peak temperature and peak heating occur at three different points in the matrix.

Negative path

The example ships a second matrix that violates the dynamic-pressure placard:

cargo run --release -p avionics_examples --example flight_envelope_placard \
  examples/avionics_examples/cfd/flight_envelope_placard/mach_alt_matrix_exceeds.csv
[FAIL] q-max placard: q = 85.1 kPa at M 1.50 / 5.0 km exceeds the 60 kPa placard

The process exits 1 and writes no table, so a failed run leaves no artifact that could later be mistaken for a valid one. Every example and verification target follows this convention.

Applicability limits

The gas is calorically perfect at γ = 1.4. The assumption is weakest for a blunt body at low supersonic speed, a condition present in this matrix.

Sutton–Graves is an entry-speed correlation. The heating column at M 0.5 is a trend and is not suitable for sizing thermal protection.

The atmosphere interpolates linearly between US-1976 rows spaced 5 to 10 km apart, which overstates density between rows.

The placard values of 60 kPa and 1700 K are demonstration figures. They are not certification data.

Stated limitation

The placards are demonstration values, not certification data. The gas is calorically perfect, and Sutton–Graves is an entry-speed correlation, so low-Mach heating is a trend rather than a thermal-protection input.