Level 3 — ProductionCompressible Flow & Aerodynamics

Compressible Flow & Aerodynamics

45 minutes60 marksprintable — key stays hidden on paper

Level 3 — Production (from-scratch derivations, code-from-memory, explain-out-loud) Time limit: 45 minutes Total marks: 60

Use γ=1.4\gamma = 1.4 and R=287 Jkg1K1R = 287\ \mathrm{J\,kg^{-1}K^{-1}} for air unless stated otherwise. Show all reasoning; state every assumption.


Question 1 — Speed of sound & stagnation temperature (10 marks)

(a) Starting from the mass and momentum equations for a 1-D isentropic disturbance, derive from scratch the expression for the speed of sound a=γRTa = \sqrt{\gamma R T}. State clearly why the process is treated as isentropic. (6)

(b) From the steady-flow energy equation for an adiabatic open system, derive the stagnation temperature relation T0T=1+γ12M2\frac{T_0}{T} = 1 + \frac{\gamma-1}{2}M^2 and evaluate T0T_0 for air moving at M=2M=2 in a stream at T=250 KT=250\ \mathrm{K}. (4)


Question 2 — Area–velocity relation & de Laval nozzle (10 marks)

(a) Derive the area–velocity relation dAA=(M21)dVV\frac{dA}{A} = (M^2 - 1)\frac{dV}{V} from continuity, the isentropic momentum (Euler) equation, and a2=dp/dρa^2 = dp/d\rho. (6)

(b) Using the sign of each term, explain out loud (in writing) why a converging–diverging geometry is required to accelerate a flow from subsonic to supersonic, and what must occur at the throat. (4)


Question 3 — Normal shock from Rankine–Hugoniot (14 marks)

Air at M1=2.0M_1 = 2.0, p1=50 kPap_1 = 50\ \mathrm{kPa}, T1=250 KT_1 = 250\ \mathrm{K} passes through a stationary normal shock.

(a) Write the three conservation equations across the shock and derive the downstream Mach number relation M22=1+γ12M12γM12γ12.M_2^2 = \frac{1 + \frac{\gamma-1}{2}M_1^2}{\gamma M_1^2 - \frac{\gamma-1}{2}}. (6)

(b) Compute M2M_2, p2/p1p_2/p_1, T2/T1T_2/T_1, and the stagnation-pressure ratio p02/p01p_{0_2}/p_{0_1}. (6)

(c) Explain physically why p02/p01<1p_{0_2}/p_{0_1} < 1 while T0T_0 is unchanged. (2)


Question 4 — Oblique shock & Prandtl–Meyer (10 marks)

(a) State the θ\thetaβ\betaMM relation. A wedge with half-angle θ=15\theta = 15^\circ sits in a M1=3M_1 = 3 stream; the weak-shock wave angle is β=32.24\beta = 32.24^\circ. Compute the normal upstream Mach number Mn1M_{n1} and downstream normal Mach Mn2M_{n2}, then find M2M_2. (6)

(b) The M1=3M_1=3 flow instead expands around a 1515^\circ convex corner. Given ν(3)=49.76\nu(3)=49.76^\circ, find the downstream Mach number using the Prandtl–Meyer function, and explain why this expansion is isentropic while the shock is not. (Use ν(3.6)60.09\nu(3.6)\approx 60.09^\circ, ν(3.7)61.15\nu(3.7)\approx 61.15^\circ.) (4)


Question 5 — Thin airfoil & finite wing (10 marks)

(a) For a symmetric thin airfoil, state the lift-per-unit-span result and hence show c=2παc_\ell = 2\pi\alpha. Compute cc_\ell for α=5\alpha = 5^\circ. (3)

(b) Explain the origin of induced drag on a finite wing and write the induced-drag-coefficient relation in terms of aspect ratio ARAR and span efficiency ee. For an elliptical wing (e=1e=1) with AR=7AR=7 operating at cL=0.9c_L = 0.9, compute cD,ic_{D,i}. (4)

(c) Define critical Mach number and explain, out loud, its link to wave drag and to Whitcomb's area rule. (3)


Question 6 — Code from memory (6 marks)

Write a self-contained Python function (NumPy allowed, no external tables) isentropic(M, gamma=1.4) that returns a dictionary with the ratios T/T0T/T_0, p/p0p/p_0, ρ/ρ0\rho/\rho_0 and the area ratio A/AA/A^*. State the formula for A/AA/A^* you implement. (6)


End of paper.

Answer keyMark scheme & solutions

Question 1 (10)

(a) Speed of sound (6)

Consider a weak pressure pulse moving at speed aa into still gas; work in the wave frame (steady). Gas enters at aa, ρ\rho, pp and leaves at adVa-dV, ρ+dρ\rho+d\rho, p+dpp+dp.

  • Continuity: ρa=(ρ+dρ)(adV)adρ=ρdV\rho a = (\rho+d\rho)(a-dV) \Rightarrow a\,d\rho = \rho\,dV (1)
  • Momentum: p(p+dp)=ρa[(adV)a]dp=ρadVp - (p+dp) = \rho a[(a-dV)-a] \Rightarrow dp = \rho a\, dV (2)
  • Combine: eliminate dVdV: dp=ρaadρρ=a2dρa2=dp/dρdp = \rho a \cdot \frac{a\,d\rho}{\rho} = a^2 d\rho \Rightarrow a^2 = dp/d\rho. (1)
  • Disturbance is weak & fast ⇒ negligible gradients & no time for heat transfer ⇒ isentropic; for p=ρRTp=\rho R T with pργ=p\rho^{-\gamma}=const, dp/dρ=γp/ρ=γRTdp/d\rho = \gamma p/\rho = \gamma R T. (1)
  • Hence a=γRTa=\sqrt{\gamma R T}. (1)

(b) Stagnation T (4) Adiabatic steady flow energy: h+V2/2=h0h + V^2/2 = h_0; with h=cpTh=c_pT: cpT0=cpT+V2/2c_pT_0 = c_pT + V^2/2. (1) Divide by cpTc_pT, use cp=γR/(γ1)c_p=\gamma R/(\gamma-1), a2=γRTa^2=\gamma RT, M=V/aM=V/a: T0T=1+V22cpT=1+γ12M2.\frac{T_0}{T}=1+\frac{V^2}{2c_pT}=1+\frac{\gamma-1}{2}M^2. (2) At M=2M=2: T0/T=1+0.2(4)=1.8T0=450 KT_0/T = 1+0.2(4)=1.8 \Rightarrow T_0 = 450\ \mathrm{K}. (1)


Question 2 (10)

(a) (6)

  • Continuity (log-differentiate ρAV=\rho A V=const): dρρ+dAA+dVV=0\frac{d\rho}{\rho}+\frac{dA}{A}+\frac{dV}{V}=0. (2)
  • Euler (inviscid, steady): dp+ρVdV=0dpρ=VdVdp + \rho V\,dV = 0 \Rightarrow \frac{dp}{\rho}=-V\,dV. (1)
  • Isentropic: dp=a2dρdρρ=dpρa2=VdVa2=M2dVVdp = a^2 d\rho \Rightarrow \frac{d\rho}{\rho}=\frac{dp}{\rho a^2}=-\frac{V\,dV}{a^2}=-M^2\frac{dV}{V}. (2)
  • Substitute into continuity: M2dVV+dAA+dVV=0dAA=(M21)dVV-M^2\frac{dV}{V}+\frac{dA}{A}+\frac{dV}{V}=0 \Rightarrow \frac{dA}{A}=(M^2-1)\frac{dV}{V}. (1)

(b) (4)

  • Subsonic (M<1M<1): (M21)<0(M^2-1)<0, so dAdA and dVdV opposite signs → to accelerate (dV>0dV>0) need dA<0dA<0 (converging). (1)
  • Supersonic (M>1M>1): same sign → to accelerate need dA>0dA>0 (diverging). (1)
  • Therefore continuous subsonic→supersonic acceleration requires converge then diverge = de Laval. (1)
  • At throat dA=0dA=0: either dV=0dV=0 or M=1M=1; for accelerating flow the sonic condition M=1M=1 occurs at the throat. (1)

Question 3 (14)

(a) (6) Conservation across shock:

  • Mass: ρ1u1=ρ2u2\rho_1 u_1 = \rho_2 u_2 (1)
  • Momentum: p1+ρ1u12=p2+ρ2u22p_1+\rho_1 u_1^2 = p_2+\rho_2 u_2^2 (1)
  • Energy: h1+u12/2=h2+u22/2h_1+u_1^2/2=h_2+u_2^2/2 (so T0T_0 constant). (1) Combining with p=ρRTp=\rho RT, a2=γRTa^2=\gamma RT and algebra yields (3): M22=1+γ12M12γM12γ12.M_2^2 = \frac{1+\frac{\gamma-1}{2}M_1^2}{\gamma M_1^2 - \frac{\gamma-1}{2}}.

(b) (6) With M1=2M_1=2, γ=1.4\gamma=1.4:

  • M22=1+0.2(4)1.4(4)0.2=1.85.4=0.3333M2=0.5774.M_2^2 = \frac{1+0.2(4)}{1.4(4)-0.2}=\frac{1.8}{5.4}=0.3333 \Rightarrow M_2=0.5774. (1.5)
  • p2/p1=1+2γγ+1(M121)=1+2.82.4(3)=1+3.5=4.5.p_2/p_1 = 1+\frac{2\gamma}{\gamma+1}(M_1^2-1)=1+\frac{2.8}{2.4}(3)=1+3.5=4.5. (1.5)
  • T2/T1=[1+γ12M12][2γγ1M121](γ+1)22(γ1)M12=1.6875.T_2/T_1 = \frac{[1+\frac{\gamma-1}{2}M_1^2][\frac{2\gamma}{\gamma-1}M_1^2-1]}{\frac{(\gamma+1)^2}{2(\gamma-1)}M_1^2}=1.6875. (1.5)
  • p02/p01=0.7209.p_{0_2}/p_{0_1}=0.7209. (from =[(γ+1)M12/21+γ12M12]γγ1[2γM12(γ1)γ+1]1γ1=\left[\frac{(\gamma+1)M_1^2/2}{1+\frac{\gamma-1}{2}M_1^2}\right]^{\frac{\gamma}{\gamma-1}}\left[\frac{2\gamma M_1^2-(\gamma-1)}{\gamma+1}\right]^{-\frac{1}{\gamma-1}}) (1.5)

(c) (2) Shock is adiabatic ⇒ energy conserved ⇒ T0T_0 unchanged (1). But it is irreversible (entropy rises), so stagnation pressure is lost: p02<p01p_{0_2}<p_{0_1} (1).


Question 4 (10)

(a) (6) θ\thetaβ\betaMM: tanθ=2cotβM12sin2β1M12(γ+cos2β)+2\tan\theta = 2\cot\beta\dfrac{M_1^2\sin^2\beta - 1}{M_1^2(\gamma+\cos2\beta)+2}. (1)

  • Mn1=M1sinβ=3sin32.24=3(0.5336)=1.601.M_{n1}=M_1\sin\beta = 3\sin32.24^\circ = 3(0.5336)=1.601. (2)
  • Normal-shock relation: Mn22=1+0.2Mn121.4Mn120.2=1+0.2(2.563)1.4(2.563)0.2=1.51263.388=0.4465Mn2=0.6682.M_{n2}^2=\frac{1+0.2 M_{n1}^2}{1.4 M_{n1}^2-0.2}=\frac{1+0.2(2.563)}{1.4(2.563)-0.2}=\frac{1.5126}{3.388}=0.4465\Rightarrow M_{n2}=0.6682. (2)
  • M2=Mn2sin(βθ)=0.6682sin17.24=0.66820.2964=2.254.M_2 = \frac{M_{n2}}{\sin(\beta-\theta)}=\frac{0.6682}{\sin17.24^\circ}=\frac{0.6682}{0.2964}=2.254. (1)

(b) (4) Expansion: ν(M2)=ν(M1)+θ=49.76+15=64.76\nu(M_2)=\nu(M_1)+\theta = 49.76+15 = 64.76^\circ. (1) Interpolate between ν(3.6)=60.09\nu(3.6)=60.09 and ν(3.7)=61.15\nu(3.7)=61.15... target 64.76 is above these; extrapolating the given trend (~1.06°/0.1M): M23.6+64.7660.0910.64.04M_2\approx 3.6+\frac{64.76-60.09}{10.6}\approx 4.04 (accept M24.0M_2\approx 4.0). (2) Expansion occurs through infinitely many weak Mach waves, each isentropic, so no entropy generation; the shock compresses abruptly across a finite discontinuity, generating entropy → not isentropic. (1)


Question 5 (10)

(a) (3) Thin-airfoil: L=πρV2cαL' = \pi\rho V^2 c\,\alpha (symmetric, camber term zero) ⇒ with L=12ρV2ccL'=\tfrac12\rho V^2 c\,c_\ell: c=2παc_\ell = 2\pi\alpha. (2) α=5=0.0873\alpha=5^\circ = 0.0873 rad ⇒ c=2π(0.0873)=0.548.c_\ell = 2\pi(0.0873)=0.548. (1)

(b) (4) Finite wing: trailing tip vortices induce downwash, tilting the local lift vector backward → a drag component (induced drag). (1.5) cD,i=cL2πeARc_{D,i}=\dfrac{c_L^2}{\pi e AR}. (1) =0.92π(1)(7)=0.8121.99=0.0368.=\dfrac{0.9^2}{\pi(1)(7)}=\dfrac{0.81}{21.99}=0.0368. (1.5)

(c) (3) Critical Mach number = free-stream MM at which local flow first reaches M=1M=1 somewhere on the airfoil. (1) Beyond it, embedded supersonic pockets terminate in shocks → wave drag rises sharply (drag divergence). (1) Whitcomb's area rule smooths the cross-sectional-area distribution of the whole aircraft to delay/reduce transonic wave drag. (1)


Question 6 (6)

import numpy as np
def isentropic(M, gamma=1.4):
    g = gamma
    T = (1 + 0.5*(g-1)*M**2)**-1              # T/T0
    p = T**(g/(g-1))                          # p/p0
    rho = T**(1/(g-1))                        # rho/rho0
    Astar = (1.0/M)*((2/(g+1))*(1 + 0.5*(g-1)*M**2))**((g+1)/(2*(g-1)))
    return {"T/T0": T, "p/p0": p, "rho/rho0": rho, "A/Astar": Astar}

Marks: correct T/T0T/T_0 (1), p/p0p/p_0 (1), ρ/ρ0\rho/\rho_0 (1), A/AA/A^* formula (2), valid returnable/self-contained code (1). A/AA/A^* formula: AA=1M[2γ+1(1+γ12M2)]γ+12(γ1)\dfrac{A}{A^*}=\dfrac1M\left[\dfrac{2}{\gamma+1}\left(1+\tfrac{\gamma-1}{2}M^2\right)\right]^{\frac{\gamma+1}{2(\gamma-1)}}.


[
{"claim":"T0 = 450 K at M=2, T=250 K","code":"T=250; M=2; g=1.4; T0=T*(1+(g-1)/2*M**2); result = abs(T0-450)<1e-6"},
{"claim":"Normal shock M1=2 gives M2=0.5774","code":"g=1.4; M1=2; M2=sqrt((1+(g-1)/2*M1**2)/(g*M1**2-(g-1)/2)); result = abs(float(M2)-0.5774)<1e-3"},
{"claim":"p2/p1=4.5 and T2/T1=1.6875 for M1=2","code":"g=1.4; M1=2; p=1+2*g/(g+1)*(M1**2-1); T=(1+(g-1)/2*M1**2)*(2*g/(g-1)*M1**2-1)/((g+1)**2/(2*(g-1))*M1**2); result = abs(p-4.5)<1e-6 and abs(float(T)-1.6875)<1e-3"},
{"claim":"p02/p01=0.7209 for M1=2 normal shock","code":"g=1.4; M1=2.0; pr=((g+1)*M1**2/2/(1+(g-1)/2*M1**2))**(g/(g-1))*((2*g*M1**2-(g-1))/(g+1))**(-1/(g-1)); result = abs(float(pr)-0.7209)<1e-3"},
{"claim":"Induced drag coefficient = 0.0368 for cL=0.9, AR=7, e=1","code":"cL=0.9; AR=7; e=1; cdi=cL**2/(pi*e*AR); result = abs(float(cdi)-0.0368)<1e-3"},
{"claim":"Oblique shock Mn1=1.601, M2=2.254 for M1=3, beta