Expand description
The normal force of a pointed body of revolution faster than sound, by Syvertson and Dennis’s second-order shock-expansion method (NACA TN 3527, 1956, also NACA Report 1328).
Flown faster than sound for a pointed nose and the cylinders behind it since the milestone
M1.8e2, the body’s
supersonic normal force in flight, and for boattails and cylinders behind those since
M1.8e4, and behind a
blunt or vertical nose tip’s Newtonian cap (crate::blunt_tip) since
M1.8e7, through crate::model::SupersonicBody. The guide’s
Bodies faster than sound
explains the method and how it was checked.
use hpr_aero::shock_expansion::{BodySegment, DEFAULT_ELEMENTS_PER_CURVE, ShockExpansionBody};
use hpr_design::{NoseShape, Profile};
// A cone five calibres long on a cylinder of four, 1 m across, at Mach 4.24.
let body = ShockExpansionBody::new(
&[
BodySegment::Profile {
profile: Profile::nose(NoseShape::Conical {}, 5.0, 0.5)?,
},
BodySegment::Cylinder {
length_m: 4.0,
radius_m: 0.5,
},
],
DEFAULT_ELEMENTS_PER_CURVE,
)?;
let slope = body.slope(4.24, std::f64::consts::PI / 4.0)?;
// Slender-body theory: 2 per radian. TN 3527's own value: 2.91; its wind tunnel: 2.84.
assert!((slope.slope_per_rad - 2.922).abs() < 5e-4);Slender-body theory gives a body’s nose C_Nα = 2 and its cylinder nothing, at every Mach
number (B67 p. 18). Faster than sound the cylinder behind a nose carries lift too: the flow
that expands around the shoulder recovers toward free-stream pressure along the cylinder, and
at an angle of attack it recovers unevenly around it. The method computes that loading, at
α → 0, for a pointed body whose flow is supersonic everywhere.
The tangent body. The profile is replaced by straight elements tangent to it (TN 3527 sketch (a), p. 6): the first tangent at the vertex, so the flow there is exactly a cone’s (Taylor–Maccoll), the rest meeting at corners. Around each corner the flow turns by Prandtl–Meyer; along each element the surface pressure relaxes exponentially from its value behind the corner toward the pressure on a cone tangent to the body there (eq. 8):
p = p_c − (p_c − p₂) e^(−η), η = (∂p/∂s)₂ (x − x₂) / ((p_c − p₂) cos δ₂) (eq. 9),
where the gradient just behind a corner comes from the one ahead of it (eq. 4, straight elements):
(∂p/∂s)₂ = (B₂/r)(Ω₁/Ω₂ · sin δ₁ − sin δ₂) + (B₂Ω₁)/(B₁Ω₂) · (∂p/∂s)₁,
with B = γpM²/(2(M² − 1)) (eq. 6), Ω the one-dimensional area ratio A/A* (eq. 7), and at
the element’s end (∂p/∂s)₃ = (p_c − p₃)/(p_c − p₂) · (∂p/∂s)₂ (eq. 10).
The loading. Near α = 0 the lifting pressures follow the same law (eq. 19):
Λ = (1 − e^(−η)) tan δ · (dC_N/dα)_tc + (λ₂/λ₁) e^(−η) Λ₁, λ = 2γp / sin 2μ (eq. 5),
where (dC_N/dα)_tc is the tangent cone’s slope (Fig. 2, read by hand into
cone_normal_force_slope) and Λ₁ the loading just ahead of the corner; on the vertex
cone Λ = tan δ_v · (dC_N/dα)_tcv. The slope and moment follow by integration over the body
(eqs. 14 and 21):
C_Nα = (2π/A_ref) ∫ Λ r dx, x_cp = ∫ Λ r x dx / ∫ Λ r dx (from the vertex).
A cylinder element’s tangent cone is the free stream (p_c = p₀, tan δ = 0), so its
loading decays to zero. A boattail element has no tangent cone; footnote 8 (p. 12) takes
p_c = p₀ and (dC_N/dα)_tc = 2, which the report found reasonable “for bodies having
moderate amounts of boattail”. That is unvalidated here.
Limits. The report states the method for M/f_n (Mach number over nose fineness) from
0.4 to 2, within ±0.2 per radian and ±0.2 calibers of its measurements (Summary, p. 1). A
pointed tip’s cone shock must be attached; a blunt or vertical tip (an infinite slope, or a
BodySegment::SphericalCap) takes TN D-4865’s Newtonian cap and starts the march at its
handover (crate::blunt_tip, HandoverStart). Fig. 2 spans Mach 3 to 10; below Mach 3 its
Mach 3 curve is held, and above 10 its Mach 10 curve, both assumptions. Viscous crossflow is
not part of it: the method is the slope at α → 0.
Structs§
- AftFlow
- The surface flow the march delivers to a body’s aft end
(
ShockExpansionBody::aft_flow): what a corner behind that body (the juncture of a flare, say) turns. - Cone
Flow - The flow over a cone at zero angle of attack.
- Element
Flow Report - The flow on one element of the tangent body (
ShockExpansionBody::element_flows): its state just behind the element’s corner, the tangent cone it relaxes toward, and how fast it does so. At an axial distancexaft of its corner the pressure isp_c − (p_c − p₂) e^(−η)and the loading(1 − e^(−η)) Λ_c + e^(−η) Λ₂, withη =Self::decay_per_m· x(TN 3527 eqs. 8, 9 and 19). Pressures are over the free stream’s,p₀. - Reduction
Turns - The two turns that bound where the second-order method’s exponential form does not hold at a
corner behind a body (
flare_reduction_turns_rad). - Segment
Slope - One segment’s share of the body’s normal-force slope at
α → 0(ShockExpansionBody::segment_slopes). - Shock
Expansion Body - A body of revolution laid out for the second-order shock-expansion method: its segments and
the straight elements of its tangent body. A pointed nose’s elements are laid out once; a blunt
tip’s start at a handover that moves with the Mach number (
crate::blunt_tip), so they are laid out at each. - Shock
Expansion Slope - The body’s normal-force slope at
α → 0and where it acts.
Enums§
- Body
Segment - One piece of a body of revolution, listed from the nose aft.
- Handover
Start - Where the method’s march starts behind a blunt tip’s Newtonian cap
(
crate::blunt_tip; the decision record on it, ADR-038).
Constants§
- DEFAULT_
ELEMENTS_ PER_ CURVE - The number of straight elements a curved segment’s tangent body gets by default: TN 3527’s
own, tangent at
x/l = 0, 0.1, …, 1.0(“in all applications of the present method to curved bodies”, footnote 9, p. 15). Four times as many move the report’s ogive-cylinders by under 0.01 per radian and 0.01 calibers (testcurved_elements_converge). - MAX_
ELEMENTS_ PER_ CURVE - The most elements a curved segment may take, far past where the result stops changing.
- SLENDER_
CONE_ RAD - Below this half-angle, 5e-4 rad (0.029°),
cone_flowtakes slender-cone theory; up to twice it, a blend.
Functions§
- cone_
flow - The flow over a cone of half-angle
half_angle_radat Machmachand zero angle of attack: the Taylor–Maccoll equation (NACA Report 1135, 1953, eq. 177, p. 628) integrated from the shock to the surface, the shock angle found so the surface falls on the cone. The weak, attached solution. - cone_
normal_ force_ slope - A cone’s normal-force slope at
α → 0, per radian on its base area, interpolated linearly between the table’s angles and Mach numbers; below Mach 3 its Mach 3 row, above 10 its Mach 10 row. The slopes are TN 3527’s Fig. 2 to 24°, and NASA SP-3007’s tables of the same theory from there to 30° (ADR-042: cone slopes past Fig. 2’s edge). - flare_
corner_ limit_ rad - The steepest turn the method reads at a flare’s corner, rad, where the surface flow reaching
that corner is
surface_mach(ShockExpansionBody::aft_flow): the largest deflection behind an attached plane oblique shock. - flare_
reduction_ turns_ rad - Where the second-order shock-expansion method’s exponential form fails at a corner behind
aft, the flow a body delivers to its aft end (ShockExpansionBody::aft_flow): the two turns between which the march reduces the element behind that corner to the generalized method.