pub struct Rocket { /* private fields */ }Expand description
Base structural mass plus an ordered set of stages.
Total mass is analytic in simulation time: the base mass, the dry mass of every attached stage and the remaining propellant of every attached motor. Thrust is the sum over attached, currently burning motors, so serial and parallel (strap-on) staging share one model. Motor knots, ignitions, burnouts and separations all split the integration grid.
Implementations§
Source§impl Rocket
impl Rocket
Sourcepub fn new(dry_mass_kg: f64, motor: Option<Motor>) -> Result<Self>
pub fn new(dry_mass_kg: f64, motor: Option<Motor>) -> Result<Self>
A single-stage vehicle whose optional motor burns once and stays attached.
Dry mass includes the empty motor casing. None creates a ballistic body.
Sourcepub fn staged(base_mass_kg: f64, stages: Vec<Stage>) -> Result<Self>
pub fn staged(base_mass_kg: f64, stages: Vec<Stage>) -> Result<Self>
A multi-stage vehicle. base_mass_kg is the structure that never
separates (payload, bus, final casing) and must be positive.
Sourcepub fn dry_mass_kg(&self) -> f64
pub fn dry_mass_kg(&self) -> f64
Mass that never separates: for Rocket::new the full dry mass including
the motor casing; for Rocket::staged the final mass after every stage
has separated and all propellant is spent.
Sourcepub fn motor(&self) -> Option<&Motor>
pub fn motor(&self) -> Option<&Motor>
The single permanent motor of a Rocket::new vehicle. Staged vehicles
use Rocket::stages; this returns Some only for the single-motor shape.
Sourcepub fn sample(&self, time_s: f64) -> Result<RocketSample>
pub fn sample(&self, time_s: f64) -> Result<RocketSample>
Evaluate mass and aggregated motor output at a finite nonnegative time.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Rocket
impl RefUnwindSafe for Rocket
impl Send for Rocket
impl Sync for Rocket
impl Unpin for Rocket
impl UnsafeUnpin for Rocket
impl UnwindSafe for Rocket
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.