Using PropogatorsParallelizer in a situation with one satellite

#1

Hello! I am working on speeding up some code that performs orbit propogation using Orekit. Ideally I would like to break up the work into different threads; while I was exploring this option I came across the documentation for PropogatorsParallelizer. I have a couple questions:

  1. Is it possible to use PropogatorsParallelizer in the situation where I only have one satellite? For example, if I subdivided the propagation time.

  2. Is there any advantage in this case to using PropogatorsParallelizer rather than creating several different propogators and running them in separate threads?

Thank you for your help!

#2

Hi @davidcode,

Is it possible to use PropogatorsParallelizer in the situation where I only have one satellite? For example, if I subdivided the propagation time.

You can use the PropagatorParallelizer class in the situation where you have only one satellite. For instance, this class can be use for Monte Carlo simulation in the case you need several propagators with different initial conditions for one satellite. As it is written in the documentation of the class, be careful that the propagators have to be build independently, especially for the force models.
However, I do not understand what you mean by “subdivided the propagation time”. Is it possible to have more information ?

Is there any advantage in this case to using PropogatorsParallelizer rather than creating several different propogators and running them in separate threads?

The first advantage is a safer implementation of the multi-threading because it is performed inside the PropagatorParallelizer class. The second advantage is related with the computation time. Indeed, if you use for instance a numerical and an analytical propagator on two separate threads, depending the propagation time their computation time can be very different. And at the end it is possible to handle two spacecraft states at two very different times. The advantage of using the PropogatorsParallelizer class is that you avoid this issue. Indeed, this class maintains the synchronization between all the propagators.

I hope my answers will help you
Best regards,
Bryan

1 Like
#3

Thank you very much Bryan! Your answers are indeed helpful.

For the first answer, I meant that I want to propagate the satellite over different time periods. For example, I might have two different propagators:

A) From 12:00-1:00
B) From 1:01 - 2:00

However, they will be have the same TLE.

1 Like