MfMax is a Fortran and Matlab package designed for the numerical solution of continuous 3D maximum final mass transfer around the Earth, especially for low thrust engines (down to 0.2 Newton for a 1500 Kilogrammes satellite). The optimal control model given by the French Space Agency is the following (we refer to  for details):
where Tmax is the maximum modulus of the thrust. The state of the satellite is described by the geometry of the ellipse osculating to the trajectory and its position on it, x = (P,ex,ey,hx,hy,L), and by its mass m.
The numerical method used is an homotopic method combined with single shooting. The shooting code is implemented in Fortran 90 and is based on J.B Caillau's TfMin. The homotopy method used L.T Watson's HOMPACK90. A specific Matlab interface is provided. It allows the user to set the parameters of the maximum final mass problem (initial conditions...) and to draw the orbits computed.
The Fortran kernel of the software uses two public libraries: Minpack, for the ODE solver RKF45 by H. A. Watts and L. F. Shampine, and the NLE solver HYBRD by B. S. Garbow, K. E. Hillstrom and J. J.. We are grateful to the authors for making their software available.
 J. B. Caillau, J. Gergaud, and J. Noailles,
Transfer of a Satellite: Continuation on the Thrust,
Journal of Optimization Theory and Applications (2002).
MfMax-v0 package source (Fortran 90 and Matlab 4 or higher). This version is for fixed final time and
fixed final longitude.
MfMax-v1 package source (Fortran 90 and Matlab 4 or higher). This version is for free final time and
fixed final longitude (more precise and no local minimum).
Soon (for february 2004) a detailed explanation of the method used in MfMax-v0 and MfMax-v1.
Link to Netlib at ENSEEIHT