#[non_exhaustive]pub struct Boattail {
pub length_m: f64,
pub fore_diameter_m: f64,
pub aft_diameter_m: f64,
pub area_ratio: f64,
pub length_ratio: f64,
pub half_angle_rad: f64,
pub rule_factor: f64,
pub separation_weight: f64,
pub chart_end_ratio: f64,
}Expand description
A boattail’s geometry and the terms of its pressure drag that don’t depend on the Mach number.
Coefficients are on its fore area π d₁²/4.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.length_m: f64Length l, m.
fore_diameter_m: f64Fore diameter d₁, m.
aft_diameter_m: f64Aft diameter d₂, m.
area_ratio: f64Area ratio a = (d₂/d₁)².
length_ratio: f64Length over fore diameter, l/d₁.
half_angle_rad: f64Half-angle of the cone through the same ends, θ = atan((d₁ − d₂)/(2l)), rad.
rule_factor: f64Niskanen’s boattail factor (eq. 3.88), used below Mach 0.8.
separation_weight: f64The share of the separated value in the supersonic drag and base pressure:
(SEPARATION_ONSET_RAD, SEPARATION_COMPLETE_RAD) mapped linearly to (0, 1).
chart_end_ratio: f64The chart’s share of the 2D limit at its end, x = 1.4, at most 1: r in the drag past
the chart.
Implementations§
Source§impl Boattail
impl Boattail
Sourcepub fn new(
length_m: f64,
fore_diameter_m: f64,
aft_diameter_m: f64,
) -> Result<Self, AeroError>
pub fn new( length_m: f64, fore_diameter_m: f64, aft_diameter_m: f64, ) -> Result<Self, AeroError>
A boattail of length_m narrowing from fore_diameter_m to aft_diameter_m, compared as
the cone through the same ends. For one length, area ratio and Mach number Jack found the
cone’s wave drag the smallest of conical, tangent-parabolic and secant-parabolic boattails
(NACA TN 2972 p. 1), so a curved boattail likely drags more than hpr gives; its steeper
aft end may also separate where the cone’s chord angle doesn’t.
§Errors
AeroError::Domain for a non-positive or non-finite length or fore diameter, a negative
aft diameter, or diameters that don’t decrease.
Sourcepub fn expansion_limit(&self, mach: f64) -> Result<f64, AeroError>
pub fn expansion_limit(&self, mach: f64) -> Result<f64, AeroError>
The 2D limit C_PM = −C_p,PM(M, θ)(1 − a) at mach ≥ 1: a Prandtl–Meyer expansion’s
pressure over the whole annulus.
§Errors
Sourcepub fn attached_pressure_drag(&self, mach: f64) -> Result<f64, AeroError>
pub fn attached_pressure_drag(&self, mach: f64) -> Result<f64, AeroError>
The attached boattail’s pressure drag at mach ≥ 1: the chart held to the 2D limit, and
past the chart’s end the limit less the chart’s share of it closing as 1/x (module
docs).
§Errors
Sourcepub fn pressure_drag_coefficient(&self, mach: f64) -> Result<f64, AeroError>
pub fn pressure_drag_coefficient(&self, mach: f64) -> Result<f64, AeroError>
The boattail’s pressure drag on its fore area at any Mach number (module docs): Niskanen’s rule to Mach 0.8; from Mach 1, the attached drag (held at its Mach 1.2 value to Mach 1.2) blended toward the separated value at the Mach number itself; a straight line between. So a boattail steep enough to separate completely drags like the step it tends to.
§Errors
AeroError::Domain for a negative or non-finite Mach number.
Sourcepub fn base_pressure_ratio(
&self,
mach: f64,
base_area_ratio: f64,
) -> Result<f64, AeroError>
pub fn base_pressure_ratio( &self, mach: f64, base_area_ratio: f64, ) -> Result<f64, AeroError>
The factor on the base drag of a base right behind this boattail, of area ratio a_b (the
base’s area over the boattail’s fore area): boattail_base_pressure_ratio, moved toward
1 by the separation weight.