---
title: Rocket Propulsion
module: Momentum
moduleNumber: 4
lessonNumber: 3
order: 403
summary: >
  A rocket speeds up by throwing mass backward, so its own mass drops as it flies
  and $\vec F=m\vec a$ no longer applies to a fixed body. Tracking the momentum the
  exhaust carries across the vehicle boundary gives thrust $T=Ru_e$ and, for a
  force-free burn, the rocket equation $\Delta v=u_e\ln(m_i/m_f)$ — a logarithm that
  makes large velocity changes expensive in propellant and forces staging. We then
  add the forces a real ascent cannot ignore, gravity, drag, and steering, and show
  how thrust and mass-flow records are cross-checked to infer the exhaust speed.
topics: [Momentum]
draft: false
sources:
  - book: Tipler & Mosca
    ref: "Ch. 8 — Conservation of Linear Momentum, §8-5"
---

## Variable-Mass Momentum

The mass of a rocket decreases while its engine operates. A calculation must state
which material belongs to the system at each instant. The usual rocket system
contains the vehicle, its payload, structure, and propellant that has not yet left
the vehicle. Exhaust already beyond the nozzle lies outside that system. Its
momentum still matters because crossing the boundary transports momentum away.

Let $m(t)$ be the instantaneous mass of the rocket system and let $\vec v(t)$
be its velocity in an inertial frame. During a short interval $\d t$, a positive
amount of exhaust mass $\d m_{\mathrm{ex}}$ leaves the vehicle. The system mass change
is therefore

$$
\d m=-\d m_{\mathrm{ex}},\qquad \dot m<0.
$$

The sign in $\dot m$ carries physical information in every propulsion calculation.
Replacing it with a positive
burn rate too early is a common source of reversed thrust terms. A separate symbol
$R=-\dot m>0$ is convenient when the engine expels propellant at a positive rate.
The two conventions are equivalent only when their signs are carried through every
equation.

$$
% caption: The rocket system is the vehicle plus unspent propellant at one instant.
% Once exhaust crosses the dashed boundary it leaves the system, carrying backward
% momentum as a flux through that boundary.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[thick] (1.15,-0.5)--(2.3,-0.5)--(2.65,0)--(2.3,0.5)--(1.15,0.5)--(0.9,0)--cycle;
\draw[thick] (2.3,-0.28)--(3.05,-0.48)--(3.05,0.48)--(2.3,0.28)--cycle;
\node at (1.75,0) {rocket};
\draw[acc,dashed,thick] (3.5,-1.15)--(3.5,1.15) node[above,acc] {boundary};
\foreach \y in {-0.3,-0.1,0.1,0.3} {\draw[->,black,thick] (3.1,\y)--(4.7,\y-0.15);}
\node[black] at (4.25,-0.9) {exhaust};
\draw[->,very thick] (1.3,0.95)--(2.5,0.95) node[right] {motion};
\end{tikzpicture}
$$

The boundary is a modelling convention placed around selected material. A larger
closed system could include the rocket and all gas expelled during a specified interval. Momentum
conservation is then applied to that closed collection. The open-system form used
below is shorter because it accounts for the leaving gas through one relative-speed
term. Both methods produce the same result when they describe the same interval.

Mass gain uses the same bookkeeping with the opposite sign. Sand falling onto a
cart, rain accumulating in a moving wagon, and a spacecraft collecting dust have
$\dot m>0$. Incoming material may have a laboratory velocity different from the
vehicle velocity. It must be accelerated or decelerated after capture, so even a
force-free collector can change speed. The rocket is the mass-loss case: expelled
material leaves with a speed relative to the vehicle and gives the remaining
vehicle a forward momentum change.


An open variable-mass boundary requires more than the substitution
$\vec F=\d(m\vec v)/\d t$. The momentum of material presently inside the
boundary changes as material enters or leaves. Newton's second law applies directly
to a closed set of matter; an open-system balance includes both external force and
momentum transport.

**Momentum balance over a short interval.**

Consider one-dimensional motion first. At time $t$, the rocket has mass $m$ and
laboratory speed $v$. In the interval $\d t$, its mass changes by $\d m<0$ and its
speed changes by $\d v$. The expelled mass is $-\d m>0$. Let $u_e>0$ denote the
exhaust speed relative to the rocket, directed backward. The exhaust laboratory
speed is therefore $v-u_e$ when the rocket moves in the positive direction.

Take the closed system as the rocket plus the small amount of propellant that will
leave during the interval. Its initial momentum is $mv$. At the end,
the rocket has momentum $(m+\d m)(v+\d v)$ and the exhausted material has
momentum $(-\d m)(v-u_e)$. External impulse is $F_{\mathrm{ext}}\d t$. Thus,

$$
F_{\mathrm{ext}}\d t
=(m+\d m)(v+\d v)+(-\d m)(v-u_e)-mv.
$$

Expanding and discarding the product $\d m\,\d v$, which vanishes faster than
either first-order change as $\d t\to0$, gives

$$
F_{\mathrm{ext}}=m\frac{\d v}{\d t}-u_e\frac{\d m}{\d t}.
$$

The last term is positive for a running engine because $\d m/\d t$ is negative.
With $R=-\dot m$, the equation becomes

$$
m\dot v=F_{\mathrm{ext}}+Ru_e.
$$

Before gravity, aerodynamic force, or other external forces are specified, this is
the one-dimensional rocket equation. The quantity $Ru_e$ has units of force. It is
the momentum per second carried backward by the exhaust relative to the rocket,
and its equal-and-opposite contribution to the rocket is the thrust in this ideal
model.


The relative speed belongs in the mass-transfer term. In a frame moving at a
constant speed $V$, the rocket and exhaust laboratory speeds both change by $V$,
while their difference remains $u_e$. The thrust prediction therefore has the same
value in every inertial frame. Inserting an exhaust speed measured relative to the
ground without transforming it to a relative speed produces a frame-dependent
answer and signals an inconsistent momentum balance.

$$
% caption: A shift to a frame moving at speed V changes both the rocket and exhaust
% laboratory speeds, but their separation — the relative speed — is unchanged. The
% momentum-transfer term uses that relative speed, so thrust is frame-independent.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[->,black] (0,0)--(6.2,0) node[right] {laboratory speed};
\fill[black] (1.15,0) circle (2.2pt); \node[below,black] at (1.15,-0.12) {exhaust};
\fill[acc] (4.65,0) circle (2.2pt); \node[below,acc] at (4.65,-0.12) {rocket};
\draw[<->,acc,thick] (1.15,0.6)--(4.65,0.6) node[midway,above,acc] {relative speed};
\draw[->,black,dashed] (0.7,-0.85)--(1.75,-0.85) node[right,black] {frame shift};
\end{tikzpicture}
$$

Vector form resolves nozzle-direction changes during flight. If
$\vec u_e$ is the exhaust velocity relative to the rocket, with its direction
opposite the outgoing jet, then

$$
m\frac{\d \vec v}{\d t}=\vec F_{\mathrm{ext}}-\vec u_e\frac{\d m}{\d t}.
$$

A rear-facing nozzle has backward $\vec u_e$ and $\d m/\d t<0$, so the
thrust term points forward. A gimballed nozzle rotates $\vec u_e$ and hence
rotates the thrust vector. The equation predicts acceleration from the instantaneous
mass, external force, exhaust direction, and mass-flow rate; it does not require
the path to be straight.

## Thrust and Ideal Velocity Change

A steady engine with constant $u_e$ and $R$ produces the ideal thrust

$$
T=Ru_e.
$$

Thrust separates into two engine characteristics. The burn rate $R$ measures how
many kilograms leave per second. The exhaust speed $u_e$ measures the momentum
change per kilogram. Doubling either quantity doubles ideal thrust, provided the
other remains fixed. The two changes have different consequences for mission
duration and propellant use. A large burn rate consumes the available propellant
quickly; a large exhaust speed raises the velocity change available from a given
mass ratio.

At launch, with upward positive and with drag temporarily neglected,

$$
a=\frac{T}{m}-g=\frac{Ru_e}{m}-g.
$$

The thrust-to-weight ratio is

$$
\frac{T}{mg}.
$$

It must exceed one for upward acceleration from a level launch surface. A ratio of
one gives zero initial acceleration in the ideal vertical model. As propellant is
expelled, $m$ decreases. If $T$ stays approximately constant, $T/m$ rises and the
acceleration rises during the burn. Actual launch vehicles often reduce thrust late
in a stage to limit structural load and crew acceleration.

$$
% caption: With constant thrust the thrust acceleration T/m rises as the vehicle
% sheds mass. Subtracting the nearly constant gravitational acceleration gives the net
% vertical acceleration, which stays positive once thrust exceeds weight.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[->,black] (0,0)--(5.9,0) node[right] {burn time};
\draw[->,black] (0,0)--(0,3.6) node[above] {acceleration};
\draw[acc,very thick,domain=0.1:4.0,samples=100]
  plot (\x,{1.2/(1-0.15*\x)});
\draw[black,dashed,thick] (0.1,1.0)--(5.0,1.0);
\draw[black,very thick,domain=0.1:4.0,samples=100]
  plot (\x,{1.2/(1-0.15*\x)-1.0});
\node[acc,anchor=west] at (4.05,2.95) {thrust part};
\node[black,anchor=west] at (4.05,1.8) {net result};
\node[black,right] at (5.0,1.0) {gravity};
\end{tikzpicture}
$$

Thrust is a force, whereas impulse is thrust integrated over time. For a constant
thrust interval $\Delta t$, the impulse magnitude is $T\Delta t$. It changes the
momentum of the vehicle, but the change in vehicle speed is not generally
$T\Delta t/m$ with one fixed mass because $m$ changes during the interval. The
logarithmic mass dependence derived below is the finite-burn result.

An engine test can determine thrust without measuring the rocket trajectory. A
calibrated load cell between an engine mount and a rigid stand records the axial
reaction. A separate measurement of propellant mass change over the same time
interval gives $R$. The ratio $T/R$ estimates $u_e$ in the ideal momentum model.
Stable test conditions matter: a transient ignition trace, changing chamber
pressure, or a drifting mass scale should not be averaged without recording the
time range used for each quantity.


Nozzle pressure can add a correction when exhaust leaves at a pressure different
from the surrounding pressure. The introductory momentum model treats the
effective exhaust speed as the quantity that makes $T=Ru_e$ match the measured
thrust. In that form, the pressure contribution and the jet momentum contribution
are included together. A detailed nozzle calculation resolves them separately;
the variable-mass derivation still uses the total axial momentum transport.

**The ideal rocket equation.**

In a direction with no external force, substitute $\dot m=-R$ into the momentum
balance and separate variables:

$$
m\frac{\d v}{\d t}=Ru_e,\qquad
\frac{\d v}{\d t}=-u_e\frac{1}{m}\frac{\d m}{\d t}.
$$

Integration from a state with mass $m_i$ and speed $v_i$ to a state with mass
$m_f$ and speed $v_f$ gives

$$
v_f-v_i=u_e\ln\left(\frac{m_i}{m_f}\right).
$$

The speed increment

$$
\Delta v=u_e\ln\left(\frac{m_i}{m_f}\right)
$$

is called the ideal rocket velocity change. It is a scalar only when thrust stays
parallel to the velocity-change direction. In a manoeuvre with rotated thrust,
the same incremental relation is integrated vectorially along the changing nozzle
direction.

$$
% caption: Ideal velocity change grows as $u_e\ln(m_i/m_f)$. Each doubling of the mass
% ratio adds the same increment $u_e\ln 2$, so the equal steps from ratio 2 to 4 show
% why large velocity changes are expensive in propellant.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[->,black] (0,0)--(5.9,0) node[right] {mass ratio};
\draw[->,black] (0,0)--(0,3.3) node[above] {ideal speed change};
\draw[acc,very thick,domain=1.0:5.4,samples=100]
  plot (\x,{1.55*ln(\x)});
\draw[black,dashed] (2,0)--(2,{1.55*ln(2)});
\draw[black,dashed] (4,0)--(4,{1.55*ln(4)});
\draw[black,dashed] (0,{1.55*ln(2)})--(2,{1.55*ln(2)});
\draw[black,dashed] (0,{1.55*ln(4)})--(4,{1.55*ln(4)});
\node[below,black] at (2,0) {2};
\node[below,black] at (4,0) {4};
\node[acc,anchor=west] at (3.5,2.55) {logarithmic};
\end{tikzpicture}
$$

Expelled reaction mass supplies the momentum partner for a rocket. The combined
rocket-plus-exhaust momentum remains conserved in a force-free environment, so a
rocket accelerates in vacuum without surrounding air. An aircraft propeller instead
accelerates surrounding air and depends on that external working fluid.

The logarithm has an immediate design consequence. A mass ratio of $2$ produces
$u_e\ln2$. Raising the ratio from $2$ to $4$ adds another $u_e\ln2$, even though
the added propellant is much larger in absolute mass. Large mission velocity
changes therefore become expensive in propellant when $u_e$ is limited. Structural
mass, tanks, engines, and payload all remain in $m_f$ and reduce the achievable
ratio.


The ideal equation uses a constant effective exhaust speed. A real engine can
throttle, change mixture ratio, or operate through an atmosphere whose pressure
changes with altitude. For $u_e=u_e(t)$, retain the differential form

$$
\d v=-u_e(t)\frac{\d m}{m}
$$

and integrate using the measured or specified function. Segmenting a burn into
short intervals with nearly constant $u_e$ provides a numerical approximation.
Each interval contributes $u_{e,k}\ln(m_k/m_{k+1})$ to the ideal axial velocity
change. The same segmentation handles a sequence of different engines or stages.

## Flight Dynamics

For vertical motion near Earth's surface, take upward as positive. Let the engine
operate with constant burn rate $R$ and constant effective exhaust speed $u_e$.
With the mass law

$$
m(t)=m_0-Rt,
$$

and with a constant approximation for $g$, the equation of motion without drag is

$$
\frac{\d v}{\d t}=\frac{Ru_e}{m_0-Rt}-g.
$$

Integration from $t=0$ gives

$$
v(t)-v_0=u_e\ln\left(\frac{m_0}{m_0-Rt}\right)-gt.
$$

The first contribution is the ideal propulsion gain. The second is the gravity
loss: the accumulated external impulse of gravity over the burn duration. A
higher-thrust vehicle reaches
a given speed in less time and consequently suffers a smaller gravity loss, even
when two vehicles have the same ideal $\Delta v$.

$$
% caption: Free-body diagram of a rocket in vertical ascent: upward thrust, downward
% weight, and downward aerodynamic drag along the axis. The exhaust plume lies outside
% the vehicle because thrust already represents its momentum effect.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[acc,thick,fill=acc!10] (2.5,-0.45) rectangle (3.1,0.95);
\draw[acc,thick,fill=acc!10] (2.5,0.95)--(3.1,0.95)--(2.8,1.6)--cycle;
\draw[acc,thick,fill=acc!14] (2.55,-0.45)--(3.05,-0.45)--(3.15,-0.8)--(2.45,-0.8)--cycle;
\foreach \x in {2.65,2.8,2.95} {\draw[->,black] (\x,-0.85)--(\x,-1.6);}
\draw[->,acc,very thick] (2.8,1.7)--(2.8,2.7) node[above] {thrust};
\draw[->,black,very thick] (4.3,0.4)--(4.3,-1.2) node[below] {weight};
\draw[->,black,thick] (1.3,0.4)--(1.3,-0.8) node[below] {drag};
\draw[->,acc,thick] (5.4,-0.2)--(5.4,0.8) node[above] {up};
\end{tikzpicture}
$$

The initial launch condition follows directly from the free-body equation. At the
pad, a support force can keep the vehicle at rest even when thrust is below weight.
After release, a vertical ascent requires

$$
T-D-mg>0,
$$

where $D$ is the downward drag magnitude. Near zero speed, drag may be small, so
$T>m_0g$ is the usual first check. It tests positive vertical acceleration after
release. An engine can have sub-weight thrust while mounted to a stand, or while accelerating a vehicle
horizontally with a supporting track.

The pad reaction changes discontinuously at lift-off. Before release, upward
support $N$ satisfies $N+T-mg=0$. As $T$ approaches $mg$ from below, $N$ approaches
zero. An ideal pad cannot pull downward; once the force balance would require
$N<0$, contact is lost and the free-flight equation replaces the support equation.


Integrating position adds a second integral. For the constant-$R$, constant-$u_e$,
constant-$g$ model,

$$
y(t)-y_0=v_0t+
u_e\left[t-\left(\frac{m_0-Rt}{R}\right)
\ln\left(\frac{m_0}{m_0-Rt}\right)\right]-\frac12gt^2.
$$

Compare a numerical time-step model against this expression, but use a changing
gravity vector, atmosphere, and steering law for a launch trajectory.
It should not be extended past propellant depletion. At $t_b=m_p/R$, where $m_p$
is the usable propellant mass, the burn ends; the subsequent trajectory is a
different dynamical segment with $R=0$.


**Atmospheric force and trajectory modelling.**

At low altitude, aerodynamic force can be comparable with thrust or weight. A
simple axial drag model uses

$$
D=\frac12\rho C_D A v^2,
$$

where $\rho$ is local air density, $C_D$ is a drag coefficient appropriate to the
shape and flow regime, and $A$ is a reference area. For upward motion through
still air, the drag force is downward. A vector model writes drag opposite the
relative velocity through the atmosphere, not necessarily opposite ground-relative
velocity. Wind changes that relative velocity.

The vertical differential equation becomes

$$
m\frac{\d v}{\d t}=T-mg-\frac{1}{2}\rho C_DA v|v|.
$$

The absolute-value form gives a drag force opposite the signed velocity for either
ascent or descent. A constant-density assumption is often adequate for a short
laboratory launch but poor for a high ascent. Density decreases strongly with
altitude, and $C_D$ can change near transonic speed. Record that atmospheric
assumption separately from the numerical solution so the result remains traceable
to the data used.


Gravity also varies with distance from Earth. The local form $mg$ can be replaced
by $GMm/r^2$ when the altitude change is large. The mass cancels from the gravity
acceleration but does not cancel from the thrust acceleration $T/m$. A trajectory
integrator can update both terms at each time step:

$$
\vec a_k=
\frac{T_k\hat t_k+\vec F_{{\rm drag},k}}{m_k}
-\frac{GM}{r_k^3}\vec r_k.
$$

The unit vector $\hat t_k$ gives nozzle direction. A numerical update
must use a time step short enough to resolve the fastest change among thrust,
attitude, mass rate, and atmospheric force. Halving the step and comparing the
output provides a basic convergence test. A trajectory that shifts materially when
the time step is halved has not yet reached a reliable numerical resolution.


The ideal rocket equation is often used as a mission-level accounting relation
before a detailed trajectory is constructed. It estimates the propulsion velocity
increment available from a mass ratio. A detailed ascent then subtracts gravity and
drag losses and includes steering loss, which arises when some thrust is directed
away from the desired velocity-change direction. These effects are not corrections
to the logarithm; they come from external forces and the changing direction of the
thrust term in the vector equation.

$$
% caption: During a curved ascent only the thrust component along the desired
% velocity-change direction adds to it; the perpendicular component turns the velocity
% vector and shows up as steering loss.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[->,black] (0,0)--(5.8,0) node[right] {east};
\draw[->,black] (0,0)--(0,3.3) node[above] {up};
\draw[->,acc,very thick] (1.1,0.55)--(4.65,1.9) node[above right] {thrust};
\draw[->,black,thick] (1.1,0.55)--(4.65,0.55) node[midway,below] {along path};
\draw[->,black,thick] (4.65,0.55)--(4.65,1.9) node[right] {turning part};
\draw[dashed,black] (1.1,0.55)--(1.1,0);
\draw[dashed,black] (4.65,0)--(4.65,0.55);
\end{tikzpicture}
$$

## Mass Ratio and Staging

Write the ignition mass as

$$
m_0=m_p+m_s+m_L,
$$

where $m_p$ is usable propellant, $m_s$ is stage structure and engine hardware,
and $m_L$ is payload plus any upper-stage mass carried by the stage. At burnout,

$$
m_f=m_s+m_L.
$$

The ideal velocity change depends on the ratio $m_0/m_f$, not on propellant mass
alone. Adding propellant increases the numerator, but tanks and feed hardware add
to the burnout mass as well. The inert mass fraction is a structural measure,

$$
\epsilon=\frac{m_s}{m_s+m_p}.
$$

At fixed payload and exhaust speed, lowering $\epsilon$ can raise the available
mass ratio. It does not make the structure optional: tanks, engines, thermal
protection, guidance hardware, and load paths have minimum mass set by strength,
temperature, vibration, and manufacturing constraints.

$$
% caption: Ignition mass separates into payload, propellant, and stage hardware.
% Burnout removes the propellant but keeps payload and hardware, so both count in the
% burnout mass that sets the mass ratio.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[acc,thick,fill=acc!8] (0,0) rectangle (1.02,0.82);
\draw[acc,thick,fill=acc!16] (1.02,0) rectangle (4.12,0.82);
\draw[acc,thick,fill=acc!8] (4.12,0) rectangle (5.7,0.82);
\node at (0.51,0.41) {payload};
\node[acc] at (2.57,0.41) {propellant};
\node at (4.91,0.41) {hardware};
\draw[->,black] (2.57,-0.85)--(2.57,-0.08);
\node[black] at (2.57,-1.1) {burned};
\node[black] at (2.85,1.2) {payload $+$ hardware $=$ burnout mass};
\end{tikzpicture}
$$

Solving the rocket equation for mass ratio yields

$$
\frac{m_0}{m_f}=\exp\left(\frac{\Delta v}{u_e}\right).
$$

> **Worked example.** A mission needing $\Delta v=3u_e$ requires mass ratio
> $e^3\approx20.1$: twenty kilograms of ignition mass per kilogram delivered to
> burnout. Doubling the requirement to $\Delta v=6u_e$ does not double the ratio; it
> squares it, to $e^6\approx403$. Each additional increment of $u_e$ multiplies the
> ratio by $e$, which is why a single stage hauling its own empty tanks struggles to
> reach a large velocity change.


Payload fraction must also be defined explicitly. A vehicle-level
payload fraction can mean $m_L/m_0$, whereas an individual stage may carry another
stage as part of its payload. Mixing those definitions makes comparisons ambiguous.
In a staging calculation, label the mass present immediately before and after
each event. The discarded hardware has mass before separation and no mass after
separation; its removal changes the starting mass for the next burn but does not
itself impart a thrust-derived velocity increment in the ideal separation model.

$$
% caption: Stage separation discards the empty lower-stage hardware after its burn.
% Velocity is continuous across the ideal separation, but the mass carried into the
% next burn drops sharply, improving the next stage's mass ratio.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[acc,thick,fill=acc!8] (0.45,-0.35) rectangle (2.28,0.35);
\draw[acc,thick,fill=acc!16] (2.28,-0.22) rectangle (3.62,0.22);
\node[above,black] at (1.2,0.4) {lower stage};
\node[above,acc] at (2.95,0.25) {upper};
\draw[->,black,thick] (3.85,0)--(4.75,0) node[midway,above] {separate};
\draw[acc,thick,fill=acc!16] (5.05,-0.22) rectangle (6.39,0.22);
\node[above,acc] at (5.72,0.25) {continues};
\draw[->,black,thick] (1.0,-0.42)--(0.2,-1.05) node[below,black] {empty stage};
\end{tikzpicture}
$$

**Staging and sequences of burns.**

Suppose stage 1 starts with mass $m_{0,1}$ and ends its powered burn at
$m_{f,1}$. Its ideal velocity change is

$$
\Delta v_1=u_{e,1}\ln\left(\frac{m_{0,1}}{m_{f,1}}\right).
$$

After stage-1 hardware is released, the mass changes discontinuously to
$m_{0,2}$. Stage 2 then supplies

$$
\Delta v_2=u_{e,2}\ln\left(\frac{m_{0,2}}{m_{f,2}}\right).
$$

Collinear burns have ideal total

$$
\Delta v_{\rm total}=\sum_k u_{e,k}\ln\left(\frac{m_{0,k}}{m_{f,k}}\right).
$$

Each stage may have a different exhaust speed. A lower stage
may emphasize high thrust for lift-off, while an upper stage may emphasize a large
velocity increment. The sum remains an ideal propulsion accounting total. Gravity,
drag, and steering must be integrated over the actual timed sequence before it is
compared with a mission requirement.


Stage separation has practical dynamics beyond the ideal mass calculation. The
vehicles must avoid collision, exhaust impingement, and recontact. Separation
springs or small thrusters can give relative motion. The resulting momentum changes
are usually small compared with the main propulsion increments but should be
included when predicting close-proximity motion. A detailed stage model also
requires the centre of mass and inertia of the retained vehicle because steering
torque changes after hardware is discarded.

An orbit manoeuvre is another sequence of burns, often separated by long coasting
intervals. Each burn has a velocity-change vector. A burn aligned with the local
velocity raises the orbital energy in the simplest two-body picture; a burn opposite
the local velocity lowers it. Radial or normal components change the orbit in other
ways. The rocket equation gives the propellant relation for each commanded vector
magnitude. Orbital mechanics determines the required vectors and timings.


## Worked Vertical Burn

Consider an ideal vertical stage with ignition mass
$m_0=2.40\times10^5\ \mathrm{kg}$, burnout mass
$m_f=8.00\times10^4\ \mathrm{kg}$, constant exhaust speed
$u_e=3.20\ \mathrm{km\,s^{-1}}$, and constant burn rate
$R=1.20\times10^3\ \mathrm{kg\,s^{-1}}$. Suppose it starts from rest at a
location where $g=9.81\ \mathrm{m\,s^{-2}}$. The calculation ignores drag,
variation of gravity, and steering. The result is a propulsion and gravity-loss
calculation under an idealized vertical flight model.

> **Worked example.** The propellant used is
> $m_0-m_f=1.60\times10^5\ \mathrm{kg}$, so the powered duration and thrust are
>
> $$
> t_b=\frac{m_0-m_f}{R}=\frac{1.60\times10^5}{1.20\times10^3}\ \mathrm s=133\ \mathrm s,
> \qquad
> T=Ru_e=(1.20\times10^3)(3.20\times10^3)\ \mathrm N=3.84\times10^6\ \mathrm N.
> $$
>
> At ignition the thrust-to-weight ratio is $T/m_0g=1.63$, giving upward
> acceleration $T/m_0-g=6.19\ \mathrm{m\,s^{-2}}$. The same thrust at burnout gives
> $T/m_f-g=38.2\ \mathrm{m\,s^{-2}}$, over six times larger, because the vehicle has
> shed two thirds of its ignition mass. A vehicle with an acceleration limit would
> throttle before this point; constant thrust is the baseline.


> **Worked example.** The ideal propulsion velocity change over that mass interval
> is
>
> $$
> \Delta v_{\rm ideal}=u_e\ln\left(\frac{m_0}{m_f}\right)
> =(3.20\ \mathrm{km\,s^{-1}})\ln3=3.52\ \mathrm{km\,s^{-1}},
> $$
>
> while gravity removes
>
> $$
> gt_b=(9.81\ \mathrm{m\,s^{-2}})(133\ \mathrm s)=1.31\ \mathrm{km\,s^{-1}}
> $$
>
> over the same $133\ \mathrm s$. The simplified burnout speed is their difference,
>
> $$
> v_b=3.52\ \mathrm{km\,s^{-1}}-1.31\ \mathrm{km\,s^{-1}}=2.21\ \mathrm{km\,s^{-1}}.
> $$

The two terms refer to different parts of the flight model. The stage supplies
$3.52\ \mathrm{km\,s^{-1}}$ of ideal propulsion capability over the mass interval,
while gravity lowers the vertical speed during this particular burn.

$$
% caption: The worked burn's velocity account: the ideal propulsion gain
% ($3.52\ \mathrm{km/s}$) minus the gravity loss ($1.31\ \mathrm{km/s}$) over the same
% $133\ \mathrm{s}$ interval gives the simplified burnout speed ($2.21\ \mathrm{km/s}$).
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[->,black] (0,0)--(5.9,0) node[right] {velocity account};
\draw[->,acc,very thick] (0.45,0.75)--(3.95,0.75) node[midway,above,acc] {ideal gain};
\draw[->,black,very thick] (3.95,0.3)--(2.6,0.3) node[midway,above,black] {gravity loss};
\draw[dashed,black] (3.95,0.75)--(3.95,0.15);
\draw[dashed,black] (2.6,0.35)--(2.6,-0.35);
\fill[acc] (2.6,0) circle (2.4pt);
\node[below,acc] at (2.6,-0.4) {burnout speed};
\end{tikzpicture}
$$

A numerical model of the same case should reproduce these values as its time step
shrinks. At each step, update mass by $m_{k+1}=m_k-R\Delta t$, compute
$a_k=T/m_k-g$, update velocity, and then update height. The model should stop its
powered update at the prescribed burnout mass. This prevents $m$ from decreasing
below dry-plus-payload mass. An automatic stop condition handles intervals for
which $t_b/\Delta t$ is not an integer.

```algorithm
set m <- m0, v <- v0, y <- y0, t <- 0
while m > mf do
  dt_step <- min(dt, (m - mf) / R)
  a <- T / m - g
  v <- v + a dt_step
  y <- y + v dt_step
  m <- m - R dt_step
  t <- t + dt_step
end while
```

The update shown is a basic explicit method. A midpoint or higher-order method
reduces integration error for a given time step. The physical assumptions dominate
the error once the step is sufficiently small; adding numerical precision cannot
repair a drag law, mass schedule, or nozzle-direction model that does not match the
vehicle.

**Burn programs and acceleration limits.**

An engine need not operate at constant thrust. If exhaust speed is approximately
constant, a chosen thrust program $T(t)$ determines the mass rate through

$$
\dot m=-\frac{T(t)}{u_e}.
$$

During vertical flight with prescribed maximum upward acceleration $a_{\max}$,
the ideal thrust is bounded by

$$
T\le m(a_{\max}+g).
$$

As mass falls, the permitted thrust falls in direct proportion. A throttle schedule
can therefore begin at full thrust and reduce later in the burn. This is a load
constraint, distinct from the requirement that total propellant and exhaust speed
provide enough mission velocity change.


Throttle also changes the burn duration. A lower late-burn thrust uses propellant
more slowly, which can increase gravity loss during a vertical ascent. A design
comparison should report total ideal $\Delta v$, burn duration, maximum
acceleration, and external-force loss over the trajectory together. Thrust or
exhaust speed alone cannot show the trade among those quantities.

At fixed total propellant mass and constant $u_e$, varying the thrust schedule
does not change the ideal velocity increment in a force-free collinear burn. The
integral $\int -u_e\,\d m/m$ depends on the mass endpoints. In an atmosphere or a
gravitational field, schedule and steering alter the duration and path, so they
change the external-force contributions to the delivered velocity.


## Measurements and Calibration

Thrust and mass-flow data are time series. A reliable estimate uses a common
steady interval for both measurements.
Let $T_j$ be load-cell samples and let $m_a,m_b$ be propellant-system masses at
the endpoints $t_a,t_b$. Over a steady window,

$$
\bar T=\frac{1}{N}\sum_{j=1}^{N}T_j,
\qquad
R=\frac{m_a-m_b}{t_b-t_a},
\qquad
u_e=\frac{\bar T}{R}.
$$

The mass record must represent propellant leaving the engine system. A scale that
also includes a changing support load, an unmeasured vent stream, or a different
fuel tank from the tested engine does not provide the required $R$. A thrust trace
may contain ignition and shutdown transients. Including them in a steady-engine
average changes both the measured thrust and the time interval associated with the
mass change.

$$
% caption: A thrust test trace has transient rise and fall around a steady interval.
% Averaging thrust over the dashed steady window and pairing it with the mass change
% over that same window gives a consistent exhaust-speed estimate.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[->,black] (0,0)--(6.0,0) node[right] {test time};
\draw[->,black] (0,0)--(0,3.3) node[above] {measured thrust};
\fill[acc!8] (1.15,0) rectangle (4.05,2.75);
\draw[acc,very thick] plot[smooth] coordinates {(.18,.10)(.55,1.20)(.92,2.20)(1.22,2.46)(1.65,2.35)(2.10,2.49)(2.58,2.40)(3.05,2.48)(3.50,2.37)(3.95,2.44)(4.32,2.00)(4.72,.52)(5.05,.12)};
\draw[black,dashed] (1.15,0)--(1.15,2.9);
\draw[black,dashed] (4.05,0)--(4.05,2.9);
\node[above,black] at (2.6,2.9) {steady window};
\end{tikzpicture}
$$

For independent small uncertainties, a first-order estimate for the inferred
exhaust speed is

$$
\left(\frac{\sigma_{u_e}}{u_e}\right)^2
\approx
\left(\frac{\sigma_T}{T}\right)^2+
\left(\frac{\sigma_R}{R}\right)^2.
$$

The expression does not replace a calibration record. Load-cell gain, zero offset,
temperature drift, vibration, and alignment can introduce systematic error. A
misaligned engine transfers a transverse force to the mount; an axial load cell may
then report only a component of the thrust. The fixture should define the intended
axis, record the sign convention, and use known reference loads before and after a
test when drift matters.


Velocity change inferred from masses also has uncertainty. With constant $u_e$,

$$
\Delta v=u_e\ln(m_i/m_f).
$$

Mass errors near burnout matter strongly because the logarithm depends on the ratio.
A reported $\Delta v$ should identify whether $m_f$ includes trapped residual
propellant, pressurant, usable reserves, and separation hardware. Each choice can
be reasonable for a stated event, but values taken from different event definitions
cannot be combined in one mass ratio.


## Energy and General Mass Exchange

The rocket equation comes from momentum balance. Kinetic energy is generally not
conserved between rocket and exhaust, even in force-free flight, because chemical
or stored energy in the propulsion system becomes kinetic and internal energy. The
rocket receives forward momentum while the exhaust receives backward momentum. The
energy partition depends on the reference frame and on how much propellant has
already been expelled.

A small exhaust packet of mass $\d m_{\rm ex}$ has laboratory velocity
$v-u_e$ in the one-dimensional rear-nozzle model. Its kinetic energy contribution
is $\tfrac12\d m_{\rm ex}(v-u_e)^2$. The vehicle's kinetic-energy change during
the same interval contains both a speed change and a mass change. Equating the
rocket's kinetic-energy gain to an exhaust kinetic-energy loss omits the stored
energy released by the engine and produces an incorrect propulsion relation.

$$
% caption: Momentum transfer gives the rocket and exhaust equal and opposite momentum
% changes, but their kinetic-energy changes need not match. Stored propulsion energy
% (chemical or pressure) supplies the difference.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[acc,thick,fill=acc!10] (2.3,-0.42)--(3.25,-0.42)--(3.55,0)--(3.25,0.42)--(2.3,0.42)--(2.05,0)--cycle;
\draw[->,acc,very thick] (3.0,0.8)--(4.85,0.8) node[right,acc] {rocket momentum};
\foreach \y in {-0.22,0,0.22} {\draw[->,black] (2.2,\y)--(0.7,\y-0.15);}
\draw[->,black,very thick] (2.0,-0.85)--(0.35,-0.85) node[left,black] {exhaust momentum};
\draw[black,thick,fill=black!8] (2.25,-1.75) rectangle (3.35,-1.15);
\node[black] at (2.8,-1.45) {stored energy};
\draw[->,black] (2.8,-1.15)--(2.8,-0.5);
\end{tikzpicture}
$$

Energy analysis remains essential for engine and vehicle design. It constrains how
chemical, electrical, nuclear, or stored-pressure energy becomes exhaust kinetic
energy, heat, radiation, and acoustic energy. The momentum balance then converts
the effective exhaust speed and mass rate into thrust and velocity change. Separate
momentum and energy balances distinguish an engine with adequate energy release but
low jet momentum from a high-thrust engine with a short available burn.

The reference-frame dependence of kinetic energy is visible in a simple example.
If a rocket and its exhaust are observed from a frame moving forward, both
laboratory speeds increase by the same amount. Their momenta and kinetic energies
change in that frame, while their relative speed and the ideal thrust prediction
remain unchanged. Work or energy claims for an open system therefore require a
declared frame and a complete account of energy crossing the boundary.


**Incoming mass and the general exchange term.**

For comparison with mass loss, suppose a cart of mass $m$ gains material while
travelling at speed $v$. Material with laboratory speed $u$ lands in it at rate
$\dot m>0$. With external horizontal force $F_{\rm ext}$, the one-dimensional equation is

$$
m\dot v=F_{\rm ext}+(u-v)\dot m.
$$

For material initially at rest on the ground, $u=0$ and the transfer term is
$-v\dot m$. The cart must accelerate each incoming kilogram from zero to its own
speed, so it slows unless an applied force supplies the missing momentum. For a
rocket, $\dot m<0$ and $u-v$ is the backward relative exhaust speed. The sign
reverses naturally when the same general equation is used consistently.


An accumulating rope on a scale offers a vertical example. The scale supports the
weight of rope already at rest and also removes the downward momentum of material
arriving at the pan. The measured force can therefore exceed the weight of the
accumulated portion. A free-body diagram containing only the resting weight misses
the momentum flux. Variable-mass systems are often difficult because the material
crossing the boundary changes state as it crosses: moving rope becomes resting
rope, incoming sand becomes cart mass, and propellant becomes a backward jet.


## Model Limits and Checks

Several errors recur in variable-mass calculations.

- **Fixed-mass impulse for a whole burn.** Replacing the changing mass by either
  the ignition or burnout mass in $\Delta v=T\Delta t/m$ gives only a rough
  estimate. The finite-burn result is logarithmic.

- **Laboratory exhaust speed inserted as relative speed.** The exhaust laboratory
  speed includes rocket speed. The mass-transfer term uses the difference between
  exhaust and vehicle velocities.

- **Dry mass omitted from a mass ratio.** Tanks, engines, payload, residual
  fluids, and structures remain after propellant depletion. Removing them from
  $m_f$ creates an impossible performance estimate.

- **Powered dynamics continued through cutoff.** The thrust term exists only while
  propellant crosses the nozzle boundary. At cutoff, set $R=0$ and solve the coast
  equation with the appropriate external forces.

- **External forces hidden inside the ideal velocity change.** Gravity, drag,
  contact force, and steering effects belong in $\vec F_{\rm ext}$ or in a
  trajectory integration. The mass-ratio expression describes propulsion alone.


**Model limits and richer flight models.**

The nonrelativistic rocket equation assumes speeds small compared with the speed of
light. At relativistic exhaust or vehicle speeds, momentum and velocity addition
require special relativity. The system-boundary analysis still applies, but
$p=mv$ and the ordinary logarithmic relation must be replaced by relativistic
expressions. The present treatment also uses a point-mass translation model.
Attitude dynamics, flexible vibration, sloshing, control delay, and structural load
require rotational and deformation equations alongside the translation equation.

An effective exhaust speed summarizes a complicated engine. It can vary with
throttle, altitude, nozzle geometry, mixture state, and chamber pressure. A model
intended for a particular engine should use measured thrust and mass-flow curves or
a validated engine map. The constant-$u_e$ analytical result is a limiting check:
a simulation should approach it when drag, gravity, steering, and schedule
variation are removed from the model.

The force model can be extended in controlled stages. First use mass change and a
specified exhaust direction. Add gravity for vertical or orbital motion. Add air
force using atmospheric density and relative wind. Add nozzle steering and
rotational dynamics once the vehicle attitude affects thrust direction. Each layer
adds parameters and measurements. A detailed result is only as credible as its
least constrained layer, so the model description should state which forces were
included and which were deliberately omitted.


Ground tests have their own boundary conditions. A stationary engine has no
vehicle velocity change, yet it expels a jet and transfers force to its mounting
structure. A test stand gives an accurate thrust record only after its stiffness,
alignment, dynamic response, and thermal environment have been considered. A
small rocket flight test introduces wind, guide-rail contact, sensor lag, and
finite sampling. The same variable-mass equation applies, while the available
measurements and external-force model determine the uncertainty of any inferred
exhaust speed or trajectory result.

**Calculation checks.**

Before accepting a result, record the beginning and ending vehicle masses for every
powered segment, the effective exhaust speed or measured thrust and mass rate, the
nozzle direction, and every significant external force. Use one declared inertial
frame for all velocities in a momentum balance. Then check dimensions:

$$
[Ru_e]=\mathrm N,\qquad
\left[u_e\ln\left(\frac{m_i}{m_f}\right)\right]=\mathrm{m\,s^{-1}},
\qquad
[gt]=\mathrm{m\,s^{-1}}.
$$

A negative computed propellant mass, a mass ratio below one during a burn, or a
forward-facing exhaust vector paired with forward thrust indicates a sign or event
definition error. Check limiting cases as well. As $m_f\to m_i$, the ideal velocity
change must approach zero. With $R\to0$ at fixed mass, thrust must approach zero.
With $F_{\rm ext}=0$ and a constant $u_e$, the differential relation must integrate
to the standard logarithm.

A measured burn permits independent routes to the same quantities. A load-cell
thrust integrated over the recorded interval gives impulse. A mass-flow record and
an inferred effective exhaust speed give $\int Ru_e\,\d t$. Agreement within the
stated calibration and sampling uncertainty provides a consistency test. A
trajectory-derived velocity change adds gravity, air force, and steering models;
it should be compared with the ideal propulsion value only after those contributions
are included explicitly.


A concise report identifies the exhaust-speed data source, the labelled ignition
and cutoff masses, and the external-force model used for any reported ascent speed.
These details distinguish a propulsion capability from a trajectory outcome and
support comparison with a higher-fidelity calculation.

A defined system boundary fixes the material whose mass changes. Momentum transport
through that boundary produces thrust, and integration over the changing mass gives
the logarithmic velocity relation. External forces, burn scheduling, staging, and
measurements determine the observed trajectory from that ideal propulsion result.

## Multiple Engines and Thrust Control

A vehicle can carry several engines whose exhaust directions are not identical.
For engine $j$, let $R_j$ be its positive mass-flow rate and let
$\vec u_{e,j}$ point opposite the jet in the vehicle frame. The total thrust
term is the vector sum

$$
\vec T=-\sum_j\vec u_{e,j}\dot m_j
=\sum_j R_j\vec u_{e,j}.
$$

The total mass rate is $\dot m=-\sum_jR_j$. Symmetric engines can provide a large
axial thrust while their transverse components cancel. Differential throttling or
gimballed nozzles changes the component balance and creates a torque about the
vehicle centre of mass. Translational acceleration uses the net force. Attitude
control uses the torque of each thrust line about the centre of mass. Treating a
multi-engine vehicle as a point mass is adequate only when the attitude is already
known or when symmetry makes the torque sum zero.

$$
% caption: Two symmetric engines have transverse thrust components that cancel while
% their axial components add to the net force. Unequal thrust would leave a transverse
% force and a turning torque about the center of mass.
\begin{tikzpicture}[>=stealth,font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[acc,thick,fill=acc!10] (2.15,-0.52) rectangle (3.75,0.52);
\draw[dashed,black] (2.95,-1.5)--(2.95,1.4);
\draw[->,acc,very thick] (2.35,-0.26)--(4.45,-1.12) node[right,acc] {engine};
\draw[->,acc,very thick] (2.35,0.26)--(4.45,1.12) node[right,acc] {engine};
\draw[->,black,very thick] (2.95,0)--(5.5,0) node[right,black] {net axial force};
\fill[black] (2.95,0) circle (1.9pt);
\node[below,black] at (2.95,-1.5) {mass center};
\end{tikzpicture}
$$

The efficiency of a commanded manoeuvre can be expressed geometrically. A thrust
component parallel to the requested velocity-change vector contributes directly to
that request. A perpendicular component changes direction instead. During a launch,
the perpendicular component may be necessary for a planned turn. During a precise
orbit correction, an unwanted component is an error source. The propulsion mass
required for a small vector impulse follows from the magnitude of the commanded
change and the applicable mass at that event; direction affects the trajectory,
contact constraints, and attitude requirements.

**Event bookkeeping.**

An engineering mass table should use rows for events. A typical segment has
ignition mass, mass after planned
burn, mass after residuals or shutdown, mass after separation, and the next-stage
ignition mass. The rocket equation for that segment uses the mass immediately
before and immediately after propellant expulsion. A separation mass drop belongs
between segments. This convention prevents a discarded lower stage from being
mistakenly included as upper-stage burnout mass.

A sequence of short burns with the same engine has additive ideal contributions,
even when the burns are separated by coast intervals. The coast does not use
propellant in this simple model, so the starting mass of the next burn is the ending
mass of the previous event. External forces during the coast still alter the orbit
or flight path. A velocity budget that sums only propulsion increments is therefore
a resource statement; it becomes a trajectory prediction only after the coasts and
all external forces are propagated.


**Interpreting a rocket result.**

The relation

$$
\Delta v=u_e\ln(m_i/m_f)
$$

gives the velocity increment supplied by an ideal exhaust stream between two
labelled masses under the stated exhaust-speed assumption. Launch altitude, orbital
radius, final ground speed, and structural safety margin require additional equations
and data. The system, time interval, and assumptions must remain attached to the
mass-ratio calculation before it is used in a trajectory claim.

The ideal increment and a trajectory prediction therefore belong in separate rows of
the result. Their input data overlap, but their physical boundaries do not.

| Statement | Relation | Additional information needed |
| --- | --- | --- |
| Ideal burn increment | $\Delta v=u_e\ln(m_i/m_f)$ | exhaust model and labelled masses |
| Instantaneous acceleration | $a=(T+F_{\rm ext})/m$ along the chosen axis | external forces and attitude |
| Trajectory outcome | integrated position and velocity | gravity, drag, guidance, and initial state |

The same discipline applies to a thrust value. $T=Ru_e$ describes the instantaneous
axial momentum transfer in the effective-exhaust-speed model. The vehicle response
depends on its instantaneous mass and on every other force. A thrust trace with no
mass record cannot determine an exhaust speed. A mass record with no force or jet
measurement cannot determine thrust. Each measured quantity has a role in the
momentum balance, and the relationships among them provide the most diagnostic checks
on a propulsion calculation.

Synchronized records are required when $u_e$ is inferred from a firing rather than
taken from a specification. The thrust channel, propellant-flow measurement, and
vehicle-mass record must share a clock and a documented delay correction. A load
cell can respond after the chamber pressure changes, while a flow meter can average
over a different interval. Dividing unmatched samples can therefore create a false
variation in effective exhaust speed. Compute impulse and expelled mass over the
same accepted window, propagate the baseline and timing uncertainties, and compare
the integrated estimate with the pointwise ratio only where both signals exceed
their resolution floors. The pre-ignition load-cell mean supplies a zero check; the
post-cutoff tail determines whether late impulse has been omitted. A stated window,
sampling rate, filter, and delay correction make the inferred exhaust speed
reproducible and separate instrument timing from genuine engine transients.

Event timing resolves a further ambiguity. A reported cutoff mass may be measured
when a command is issued, when valves close, when the chamber pressure decays, or
when the thrust trace falls below a stated threshold. These events can differ by a
measurable propellant mass. The mass-ratio denominator should be tied to the same
event used to end the thrust integration. If a report includes residual propellant
as unavailable mass, that choice belongs in both the stated mass model and the
uncertainty estimate. Clear event labels make comparisons between engine tests,
trajectory simulations, and stage budgets meaningful.

For classroom and laboratory work, place the sign convention beside the first
diagram, label the two masses with their event times, and retain units in every
intermediate line. Those records expose sign and event-definition errors before a
numerical result is used and support later changes to the burn rate, payload, or
external-force model.

A propulsion result should retain the burn events and the measurement that controls
each derived quantity. The logarithmic mass ratio gives the ideal burn increment;
trajectory prediction also requires the event-matched records below.

| Reported quantity | Relation | Matched event or measurement |
| --- | --- | --- |
| Ideal velocity increment | $\Delta v=u_e\ln(m_i/m_f)$ | labelled start and cutoff masses |
| Thrust | $T=Ru_e$ | mass-flow rate and effective exhaust speed |
| External-force correction | impulse integrated over the burn | same time window as the mass change |
| Stage performance | post-separation mass and velocity | release event and payload boundary |

They also expose which measurement would most improve a later revision of the
trajectory model.
