pub struct FinOutline { /* private fields */ }Expand description
A fin’s outline in its own plane, for supersonic linear theory: a simple polygon of [x, y]
vertices, m, with x aft of the root leading edge and y out from the root, closed along the
root.
Serialize-only: an outline is built from a planform by FinOutline::from_planform, which
checks it.
Implementations§
Source§impl FinOutline
impl FinOutline
Sourcepub fn points_m(&self) -> &[[f64; 2]]
pub fn points_m(&self) -> &[[f64; 2]]
The vertices, m, from the root leading edge [0, 0] around to the root trailing edge.
Sourcepub fn tip_leading_edge_m(&self) -> [f64; 2]
pub fn tip_leading_edge_m(&self) -> [f64; 2]
The tip’s leading edge, m: the foremost point at the full span, where the tip’s Mach cone starts.
Sourcepub fn tip_chord_m(&self) -> f64
pub fn tip_chord_m(&self) -> f64
The tip’s chord, m: the outline’s length along the flow at the full span (0 for a pointed tip).
Sourcepub fn centroid_m(&self) -> f64
pub fn centroid_m(&self) -> f64
Its area centroid, m aft of the root leading edge.
Sourcepub fn from_planform(planform: &FinPlanform) -> Result<Self, AeroError>
pub fn from_planform(planform: &FinPlanform) -> Result<Self, AeroError>
The outline of a planform: a trapezoid’s four corners, a freeform fin’s own points, and an ellipse as a polygon of 256 sides.
§Errors
The planform’s own validation errors, AeroError::Unsupported for a planform this model
doesn’t know, and AeroError::Domain for an outline without area.
Sourcepub fn tip_cone(&self, beta: f64) -> (f64, f64)
pub fn tip_cone(&self, beta: f64) -> (f64, f64)
The area, m², and its centroid, m aft of the root leading edge, of the part of the fin
inside the Mach cone from the tip’s leading edge at β = √(M² − 1): aft of the Mach line
x − x_T = β (s − y), which runs inboard from the tip at the Mach angle atan(1/β).
The root is a reflection plane, so a cone that crosses it comes back: the part of the cone over the fin’s mirror image counts too, as the mirror fin’s cone crossing onto this one.
beta must be positive and finite; FinAero::loading checks the Mach number it comes
from.
Sourcepub fn supersonic(&self, beta: f64, reference_area_m2: f64) -> (f64, f64)
pub fn supersonic(&self, beta: f64, reference_area_m2: f64) -> (f64, f64)
One fin’s supersonic normal-force slope per radian, on reference_area_m2, and its center
of pressure, m aft of the root leading edge, at β = √(M² − 1).
Linear (Ackeret) theory for a flat plate: each surface carries the pressure coefficient
∓2α/β, so the loading is 4α/β over the fin, uniform along every chord. Inside the Mach
cone from the tip’s leading edge it is halved, as Barrowman 1967 (appendix A, p. 84) does
for each strip; for a rectangular tip that is linear theory’s exact loss,
C_Lα = (4/β)(1 − 1/(2βA)). The root is a reflection plane (the body). So
(C_Nα)₁ = (4/β)(A_fin − A_cone/2)/A_ref, and the CP is the loading’s centroid.
beta must be positive and finite, as for FinOutline::tip_cone.
Source§impl FinOutline
impl FinOutline
Sourcepub fn axis_moments(&self, body_radius_m: f64) -> (f64, f64)
pub fn axis_moments(&self, body_radius_m: f64) -> (f64, f64)
The first and second moments of the fin’s area about the body axis, ∫ξ dA (m³) and
∫ξ² dA (m⁴), with ξ = r_t + y the distance from the axis and r_t the body radius
at the fins. For a fin on a pod, r_t is how far its root lies along its span from the
rocket’s axis, which may be negative.
Sourcepub fn tip_cone_axis_moments(&self, beta: f64, body_radius_m: f64) -> (f64, f64)
pub fn tip_cone_axis_moments(&self, beta: f64, body_radius_m: f64) -> (f64, f64)
FinOutline::axis_moments of the part of the fin inside the tip’s Mach cone at
β = √(M² − 1), with the mirror fin’s cone crossing the root, as FinOutline::tip_cone
takes it.
beta must be positive and finite, as for FinOutline::tip_cone.
Trait Implementations§
Source§impl Clone for FinOutline
impl Clone for FinOutline
Source§fn clone(&self) -> FinOutline
fn clone(&self) -> FinOutline
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FinOutline
impl Debug for FinOutline
Source§impl PartialEq for FinOutline
impl PartialEq for FinOutline
Source§fn eq(&self, other: &FinOutline) -> bool
fn eq(&self, other: &FinOutline) -> bool
self and other values to be equal, and is used by ==.