OrbitLoweringManeuvers:

 Lower orbits starting from a hyperbolic orbit
 This routine will change orbits. The first is for insertion into the
 planetary orbit from a hyperbola. The second and additional to lower
 apoapsis. All maneuvers happen at periapsis. All are in-plane maneuvers.
 You need at least one orbit. d.maneuver is compute during initialization.

 Type OrbitLoweringManeuvers for a demo of lunar insertion.

--------------------------------------------------------------------------
   Form:
   [u,d] = OrbitLoweringManeuvers( action, d, t, v )
--------------------------------------------------------------------------

   ------
   Inputs
   ------
   action   (1,:)   'initialize' or 'update'
   d        (.)     Data structure
                    .mu        (1,1) Gravitational parameter (km^2/s^3)
                    .mass      (1,1) Initial mass (kg)
                    .thrust    (1,1) Thrust (N)
                    .uE        (1,1) Exhaust velocity (km/s)
                    .el0       (1,6) Hyperbolic elements [a i lon arg e M]
                    .orbit     (.)   Orbit data structure
                                     .a  (1,1) Semi-major axis (km)
                                     .e  (1,1) Eccentricity
   t        (1,1)   Time (s) or file name for printing the maneuver plan
   v        (3,1)   Velocity vector

   -------
   Outputs
   -------
   u        (3,1)   Thrust vector
   d        (.)     Data structure adds
                     .massFuelUsed (1,1) Total propellant usage (kg)
                     .dVTotal      (1,1) Total delta V (km/s)
                     .maneuver     (.)   Orbit data structure
                                         .t  (1,1) Time of maneuver
                                         .dT (1,1) Maneuver duration

--------------------------------------------------------------------------

Children:

Common: Database/Constant
Common: General/CreateTable
Orbit: OrbitManeuver/ManeuverDuration
Orbit: OrbitMechanics/TimeOfFlightHyperbola