I am trying to introduce a constant thrust model to the DSST propagator, in order to simulate low-thrust electric propulsion maneuvers. This subject has been raised a few times in the past (see for example https://www.orekit.org/mailing-list-archives/orekit-users/msg00345.html), and two main possible solutions were proposed:
- divide the maneuver in several smaller impulsive maneuvers;
- create a new class that extends AbstractGaussianContribution and delegates to ConstantThrustManeuver.
I have implemented the first solution with good results. However, the computation time is increased considerably as the size of the discretization intervals is reduced, and for our application we would rather use a continuous acceleration model.
For the second solution, I wrote a class DSSTContinuousManeuver as described above and taking as reference the DSSTSolarRadiationPressure class. For now, I managed to make the DSST propagator run after adding the DSSTContinuousManeuver force model, but it doesn’t take into account the constant thrust (it just performs a free propagation). I suspect it has to do with the method getLLimits, which for now I left with [-PI, +PI], but I am not sure how to proceed. Do you have any ideas or advise?
Thank you very much for your answers.