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.