pub fn subsonic_pressure_drag_coefficient(
c_rest: f64,
c_low: f64,
slope_low: f64,
mach_low: f64,
mach: f64,
) -> Result<f64, AeroError>Expand description
Niskanen’s eq. 3.87 between Mach 0 and the transonic method’s lower bound M_L:
(C_D•)_p = a M^b + (C_D•)_p,0, with a and b “computed to fit the drag coefficient and
its derivative at the lower bound of the transonic method” (Niskanen 2009 p. 48):
b = C_T′(M_L) M_L/Δ and a = Δ/M_L^b, where Δ = C_T(M_L) − (C_D•)_p,0.
Niskanen assumes the curve “non-decreasing in the subsonic region” with zero slope at rest,
which needs Δ > 0 and a positive slope (and b > 1 for the zero slope). Where Δ ≤ 0 or the
slope isn’t positive, no a M^b meets both conditions, and hpr uses (C_D•)_p,0 + Δ (M/M_L)²
instead: continuous in value, flat at rest, with a kink at M_L (ADR-028). It
arises only for small coefficients: a joint that isn’t smooth on a shape whose measured curve
is still near 0 at M_L.
c_rest is (C_D•)_p,0, c_low and slope_low the value and slope at mach_low.
§Errors
AeroError::Domain for a Mach number outside [0, mach_low], a non-positive mach_low or
non-finite coefficients.