Making propagators fast again! (and more)

Hey everyone!

These two weeks we were concentrated on two major commits: maneuvers and speeding up Newton method.

Maneuvers

Maneuvers are artificial perturbations to the keplerian trajectory. Three years ago Juan wrote some code for various known optimal maneuvers (with least fuel consumption), but did not move them to Poliastro. We moved them to Poliastro and so now users can simulate orbits with orbital elements changing over time.

Speeding up propagators

At the very beginning of my GSoC, I added the mean_motion propagator to Poliastro. The problem was that it was slow, because it had to solve Kepler equation numerically in pure python. The idea was to use the Numba package, that creates C-like compiled code and it dramatically speeds up the pythonic code. The challenge is that Numba now does not support many python features and so we had to make our code more ugly and get rid of some fancy python to allow Numba do its job. Finally, if worked.

The GSoC is ending soon…