A variable mass system is a body that gains or loses mass over time. Rockets, jet-skis and conveyor belts are all variable mass systems.
As mass is not constant, we cannot use Newton’s second law in its traditional form. Instead, we must apply the generalised law derived from the conservation of linear momentum or a control volume (CV) approach.
Control Volume Approach
For a system losing mass, the dynamic equilibrium equation is:
This can be rearranged to: Inertial Force = External Forces + Thrust
| Symbol | Definition | Engineering Meaning |
|---|---|---|
| Instantaneous mass | Total mass remaining inside the CV | |
| Acceleration () | Instantaneous acceleration of the CV | |
| External forces | Net physical forces (e.g., gravity, drag) | |
| Mass flow rate () | Rate of mass ejection () | |
| Relative velocity () | Exhaust velocity relative to the CV | |
| Thrust () | Resultant momentum reaction force |

Two Mass-Transfer Systems
Some systems simultaneously intake and expel mass through the same control volume. For example, a jet ski takes in water at the intake and ejects it faster at the nozzle.
We can generalise our dynamic equilibrium equation to account for multiple mass-transfer terms:
Momentum Reaction Force
Momentum reaction force () can be called thrust or resistance depending on the direction is acts upon.
Thrust () is used when it pushes the body forward (aids motion).
Resistance () is used when it pushes the body backwards (opposes motion).
A body can experience both thrust and resistance if it has multiple intake/exhaust streams. If so, we would split momentum reaction force into thrust and resistance .
Steady Flow
A steady flow system is an open control volume where mass intake/exhaust are equal and are a constant rate. Total mass inside the system stays the same over time.
This allows us to simplify our two mass-transfer equation:
const current = dv.current();
if (current && current.file.tags.some(t => t.toLowerCase() === "#topic")) {
const inlinks = current.file.inlinks;
// Split backlinks: general notes vs. lecture notes
const lectureLinks = inlinks.where(l => l.path.includes("/Lecture Notes/"));
const otherLinks = inlinks.where(l => !l.path.includes("/Lecture Notes/"));
if (otherLinks.length > 0) {
dv.header(4, "Links To This Page");
dv.list(otherLinks);
}
if (lectureLinks.length > 0) {
dv.header(4, "Referenced In Lecture Notes");
dv.list(lectureLinks);
}
}