General Question Which integrator should I use?

SpaceBoy2

Member
Joined
Jan 29, 2022
Messages
48
Reaction score
10
Points
23
Location
India
Which integrator should I use for higher orders. Should I use Symplectic or should I go with the default RK integrator? Also why should I consider adding a fifth order integrator?

Thanks in advance
 
I'm very, very far from an expert on the subject, but as far as I know Orbiter itself uses RK4, so if you use that I guess the chances are best that your results match up with the core simulation.
 
Sorry, I didn't correctly state the question. I actually meant in Orbiter itself. You can change that in the Extra tab -> Time propagation -> dynamic state propagators.
By default it uses RK methods of differing orders (RK2, RK4, RK6, RK8)
 
Higher order propagators are almost always more accurate, but they will sacrifice some performance (mostly unnoticeable with a few vessels and Orbiter's zonal gravity). In a case where the higher order models were impacting performance so much that you were getting like 1-5 fps, you're probably loosing accuracy in that case.

There is a document in the doc/technotes folder that discussed accuracy. From my memory, the default propagator settings are still good enough that other things (ephemerides, atmosphere, gravity model, roundoff) will probably contribute to error quicker than the propagator itself will. Unless you care about centemeter accuracy over thousands of orbits, you probably don't need to change them.


On the other hand, Orbiter is a simulator, and discovering how a difference in propagators effects accuracy is definitely something you can do yourself, if you want to set up some test cases, and compare results. Run it like an experiment, with he default as a control.


The symplectic integrators are a little different than the Runge-Kutta. They sacrifice a little bit of positional accuracy, but because they're based on Hamiltonian mechanics, they guarantee conservation of energy. It just depends on which is more important in your test case.
 
@SpaceBoy2 Take a look at the coding of Lagrange MFD, which implemented a 4th order symplectic integrator in an asynchronous worker thread, to allow really deep (as in multi-seconds) calculation whilst not stalling the UI.
 
Back
Top