pub struct RocketGeometry {
pub nose: NoseCone,
pub tube: BodyTube,
pub fins: TrapezoidalFins,
pub roughness_m: f64,
}Expand description
The complete slender geometry.
Fields§
§nose: NoseConeNose cone.
tube: BodyTubeCylindrical body tube.
fins: TrapezoidalFinsAft trapezoidal fin set.
roughness_m: f64Roughness height in metres (default 20 µm, painted surface).
Implementations§
Source§impl RocketGeometry
impl RocketGeometry
Sourcepub fn new(nose: NoseCone, tube: BodyTube, fins: TrapezoidalFins) -> Self
pub fn new(nose: NoseCone, tube: BodyTube, fins: TrapezoidalFins) -> Self
Build with the default painted-surface roughness (20 µm).
Sourcepub fn with_roughness(self, roughness_m: f64) -> Self
pub fn with_roughness(self, roughness_m: f64) -> Self
Set the roughness height in metres.
Sourcepub fn total_length_m(&self) -> f64
pub fn total_length_m(&self) -> f64
Total aerodynamic length (nose + tube).
Sourcepub fn max_diameter_m(&self) -> f64
pub fn max_diameter_m(&self) -> f64
Largest body diameter (nose base or tube).
Sourcepub fn ref_area_m2(&self) -> f64
pub fn ref_area_m2(&self) -> f64
Reference area, π/4·d² of the largest diameter.
Sourcepub fn mass_properties(
&self,
nose_kg: f64,
tube_kg: f64,
fins_kg: f64,
casing: Option<(f64, f64)>,
) -> MassProperties
pub fn mass_properties( &self, nose_kg: f64, tube_kg: f64, fins_kg: f64, casing: Option<(f64, f64)>, ) -> MassProperties
Combine component masses with the geometry’s component CGs into a dry CG and a pitch-inertia estimate about that CG.
The nose is a solid of revolution (numerically integrated), the
tube a thin-walled cylinder, and the fins and optional motor casing
point masses; evenly spaced fins add n/2 · m · (r_body + y_cg)² for
their radial offset. casing is (mass_kg, CG from the nose tip).
Sourcepub fn analyze(&self) -> AeroAnalysis
pub fn analyze(&self) -> AeroAnalysis
Full analysis. Mach samples at 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, and 3.0; the last point simply repeats the Mach-1 values (subsonic clamp).
Trait Implementations§
Source§impl Clone for RocketGeometry
impl Clone for RocketGeometry
impl Copy for RocketGeometry
Auto Trait Implementations§
impl Freeze for RocketGeometry
impl RefUnwindSafe for RocketGeometry
impl Send for RocketGeometry
impl Sync for RocketGeometry
impl Unpin for RocketGeometry
impl UnsafeUnpin for RocketGeometry
impl UnwindSafe for RocketGeometry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.