In the MoonLanding example from Chapter 3 the declaration of certain fields like mass and name were repeated in each of the classes CelestialBody and Rocket. This can be avoided by collecting those field declarations into a generic body class called Body, and reusing these by inheriting Body into CelestialBody and Rocket.
We have replaced the general keyword class by the restricted class keyword model which has the same semantics as class apart from the fact that it cannot be used in connections. The reason is that it is more common practice to use the keyword model for modeling purposes than to use the keyword class.
Diagram 1: Altitude of the Apollo rocket over the lunar surface
Diagram 2: Thrust from the rocket motor, with an initial high thrust f1 followed by a lower thrust f2.
Diagram 3: Rocket mass decreases when the fuel is consumed
Diagram 4: Gradually increasing gravity when the rocket approaches the lunar surface
Diagram 5: Vertical velocity relative to the lunar surface