Revamped all PropagatorBuilder Hierarchy

Hi all,

After months of struggling, the infamous issue 1867 has been completed and merged into develop :fireworks:
Thanks a lot to @hankgrabowski and @MaximeJ for their invaluable help.

I won’t copy here the overall process, but rather points interested parties to the upgrade documentation where everything is explained (at least I hope).

This change is really a major one as it affects many basic components. So I suggest that many of you try it, challenge the choices that were made and discuss here so we can stabilize everything before we ship version 14.0. There is of course still room for improvements, mainly related to regular doube vs. field conversions (I think in particular that we should add a field version of ParameterDriver , see this topic).

Version 14.0 release was blocked by this issue for far too long, so we should not delay it too much. If you want to have a look, try the develop branch soon. The first step would be to try it against your own production code that depends on Orekit. This may also reveal problems in the other incompatible changes we have introduced in this version.

Hi,

thanks Luc for generalizing this thing.
I think we could do with clearer names, especially to distinguish a set of 6 parameters equivalent to position-velocity (Keplerian elements, etc.) and the time-stamped version, which is already a trajectory (at least locally). For the former, I think the name should include “parameters”. So maybe your OrbitalParameters interface, which is the abstraction of the latter if I’m not wrong, could become a “OrbitRepresentation” or even “OrbitalTrajectory”?

Cheers,
Romain.

PS : orekit tutorials need an update for the new API

Yes, go for a rename as you see fit.