Implement orbital precession#2364
Implement orbital precession#2364pedro-fixingstuff wants to merge 4 commits intoCelestiaProject:masterfrom
Conversation
|
|
The latest commit fails to build as it is right now |
|
Regarding precession causing the no-fading orbit to be incomplete, we might want to instead draw the Keplerian orbit at that instant (a Keplerian orbit with the current longitude of ascending node and argument of periapsis). This is the approach Universe Sandbox uses for its equivalent orbit render mode, and in absence of fading, I think it's about the best option we have to render these orbits. |
f302220 to
5075eb1
Compare
|
I feel like this is ready to be taken a look now. About rendering the path of the osculating orbit when fading is disabled, my opinion is that it's better left for another moment, as that would mean a change from the current paradigm of showing the actual path an object has traversed/will traverse. For most realistic cases of precession, the difference between either orbital path wouldn't be significant anyway... |
273b416 to
7bcaabc
Compare
Orbital precession is enabled by two parameters within an EllipticalOrbit block: NodalPrecessionPeriod and ApsidalPrecessionPeriod, both with default units of years. One or both parameters can be specified simultaneously.
Anomalistic period is measured from one periapsis passage to another, as opposed to the sidereal period, which is the default assumption.
7bcaabc to
99bbd7d
Compare
This matches the behavior of precessing orbits
99bbd7d to
0e7dfae
Compare
|




This adds two new parameters for modeling of nodal and apsidal precession:
NodalPrecessionPeriodandApsidalPrecessionPeriod. The default unit for both is years.Example syntax (orbit data from 16 Cyg Bb):
For the following images, I've set
OrbitPeriodsShownto 3.0 in celestia.cfg.Nodal precession:

Apsidal precession:

One issue is that the orbit paths look incomplete (this is with fading disabled). I wonder if using some parameter other than period (such as eccentric anomaly) for sampling the orbit would address that.

I'm not sure if the equations used are correct either.