pub struct PressureDragCurve { /* private fields */ }Expand description
A nose’s, shoulder’s or step’s pressure-drag coefficient against Mach number, on its increase
in area: the value at rest, eq. 3.87’s fit, and appendix B’s transonic method from M_L
(the module docs). It serializes what it was built from, not its internals.
Implementations§
Source§impl PressureDragCurve
impl PressureDragCurve
Sourcepub fn step() -> Self
pub fn step() -> Self
A step up in radius, or a body’s bare front face: a flat face, the blunt cylinder’s
0.85 q_stag/q at every Mach number (eq. B.1–B.2), 0.85 at rest. Eq. 3.86 “does not take
into account the effect of extremely blunt nose cones (length less than half of the
diameter)” (Niskanen 2009 p. 47), and a step has no length.
Sourcepub fn new(
shape: NoseShape,
fineness_ratio: f64,
joint_angle_rad: f64,
) -> Result<Self, AeroError>
pub fn new( shape: NoseShape, fineness_ratio: f64, joint_angle_rad: f64, ) -> Result<Self, AeroError>
The curve of a nose or shoulder of shape, fineness ratio f = l/(d_aft − d_fore) and
joint angle joint_angle_rad at its aft end (eq. 3.86’s φ).
- A cone takes eq. B.4–B.6, and its value at rest from
φ(for a cone nose,φ = ε). - An ogive takes the cone of the same fineness times eq. B.8’s factor,
κthe reciprocal of its radius ratio. - An ellipsoid takes Hoerner’s measured forebody pressure drag below Mach 0.8
(
ellipsoid_subsonic_pressure_drag), or eq. 3.86’s value at rest where that is more, Stoney’s ellipsoid scaled by eq. B.9 from its first point, Mach 1.2, and a straight line between (ADR-173, a blunt ellipsoid’s measured drag). - The other shapes interpolate Stoney’s fineness-3 curves linearly in their parameter, then
scale by eq. B.9 (Niskanen p. 108: “If data for a particular parameter value is missing,
interpolate”). A power series
xⁿruns through the blunt cylinder (n = 0),x^¼,x^½,x^¾and the 3:1 cone (n = 1); a parabolic series through the cone (K′ = 0) and the½,¾and full parabolas; a Haack series between von Kármán (C = 0) and L-V Haack (C = ⅓).M_Lis the first Mach number both ends’ curves have.
Cones and ogives below fineness 1 scale by eq. B.9’s form between a flat face at fineness 0
and their closed form at fineness 1, from Mach 0.8, because the closed form passes a flat
face’s drag as the cone flattens. A zero fineness ratio is a step:
PressureDragCurve::step whatever the shape.
§Errors
AeroError::Domain for a negative or non-finite fineness ratio, a joint angle outside
[0, π/2], or a power-series exponent, parabolic parameter or Haack parameter outside
[0, 1], [0, 1] or [0, ⅓]; AeroError::Unsupported for an ogive whose radius ratio
isn’t a finite number of at least 1 (a bulged secant ogive has one below 1) or a Haack series
above C = ⅓, where no data reaches, and for a shape this model doesn’t know.
Sourcepub fn rest_coefficient(&self) -> f64
pub fn rest_coefficient(&self) -> f64
The value at rest: eq. 3.86’s 0.8 sin² φ, or for an ellipsoid, Hoerner’s measured value
where it is more (ADR-173, a blunt ellipsoid’s measured drag).
Sourcepub fn transonic_lower_bound(&self) -> f64
pub fn transonic_lower_bound(&self) -> f64
M_L, where appendix B’s transonic method takes over from eq. 3.87; 0 for an ellipsoid,
whose own curve covers every Mach number.
Sourcepub fn coefficient(&self, mach: f64) -> Result<f64, AeroError>
pub fn coefficient(&self, mach: f64) -> Result<f64, AeroError>
The coefficient at mach, on the increase in area.
§Errors
AeroError::Domain for a negative or non-finite Mach number.
Trait Implementations§
Source§impl Clone for PressureDragCurve
impl Clone for PressureDragCurve
Source§fn clone(&self) -> PressureDragCurve
fn clone(&self) -> PressureDragCurve
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PressureDragCurve
Source§impl Debug for PressureDragCurve
impl Debug for PressureDragCurve
Source§impl PartialEq for PressureDragCurve
impl PartialEq for PressureDragCurve
Source§fn eq(&self, other: &PressureDragCurve) -> bool
fn eq(&self, other: &PressureDragCurve) -> bool
self and other values to be equal, and is used by ==.