Solar System Barycenter Propagation

As I’m trying to get heliocentric propagations that match Horizons I’m running into a bit of a wall. With just using standard Orekit plus a Sun-centered Ecliptic Frame I’m able to match my sample asteroids out to about 250 km 50 years out. That’s not bad but I want to do better. Part of bringing in the other large asteroids database is to get that better. One thing that has been brought up to me in discussions is that these tools do their propagations around the solar system barycenter not the sun center. I wanted to see if that would help get me closer as well. This is the wall I’ve run into. For obvious reasons the Newtonian Attraction term assumes it is at the center of the coordinate system of the initial state. A “neat” thing I found out was that if you don’t explicitly give it a Newtonian Attraction term it is added for you automatically unless you explicitly call setIgnoreCentralAttraction(true). That still leaves me with needing to model the sun’s gravity, so I created a ThirdBodyAttraction term for that. Unfortunately the formulation does not work in this case. I can’t find the reference for what is going on but we have a direct and indirect term, where the indirect acceleration term is “substracting acceleration” from the object with respect to the origin. Because the barycenter is so close to the sun I’m therefore getting net accelerations on the order of 85 m/s^2 for a 1 AU orbit. I’m expecting accelerations on the order of ~0.006 m/s^2 from the sun at this distance. This far larger value is completely dominated by this indirect acceleration term. Without a reference I don’t know what the assumptions of the derivation are, but obviously I’m breaking them with this use case.

Before I get too far into the weeds of coding up an off-center point mass gravity force that is not a third body perturbation is there something I should be using instead that already exists in Orekit? Is there another problem I’m going to encounter with having the propagation around the Solar System Barycenter that people know off the top of their heads? If there is a specific reference this is coded from it would be good to add it to the documentation too.

Hi @hankgrabowski

What you are doing looks very interesting.

I’m not sure that I have the right answer. Probably other people can give you a better answer. However, I have a little idea.

Did you look at the force models introduced at release 10.0 of Orekit?

Maybe these force models can help you.
Another idea I have is to use some functionalities we introduced 2 weeks ago about the CR3BP model. These functionalities are available in the develop branch and I think you forked Orekit project just before we introduced these functionalities. To see if some functionalities can help you, tutorials about CR3BP model are available in the orekit-tutorial project


1 Like

@bcazabonne on initial view this looks like exactly what I am looking for thanks!