General Question Do Different Computers Calculate Different Orbiter Universes?

othoudt

New member
Joined
Sep 8, 2009
Messages
50
Reaction score
0
Points
0
Location
Naples
I got to wondering if two different computers having different CPUs, RAM, Video cards, ect might calculate two slightly different Orbiter universes? Let's say computer A has a CPU that rounds off numbers to 20 decimal places and computer B has a CPU that rounds off numbers to 21 decimal places. Would computers A and B create two different virtual universes?

Just thinking aloud....
 
x86 CPU's, the ones Orbiter run on, are quite standardized - they round the the numbers alike, they compute things alike, maybe only at different speeds.
Assuming we run the Orbiter under a virtual machine and tune the CPU a little, the differences will be mostly in trajectory precision - the less accurate the arithmetics, the less precise the trajectories are.
Same thing apply to the CPU speed - slower CPU will give Orbiter less time to calculate trajectories, resulting in a less precise simulation.

What exactly do you expect to see when "two different virtual universes" are created?
Ships flying in different directions? It can happen even on one machine - computations like that are inherently chaotic, no two runs of Orbiter from the same scenario will produce a bit-by-bit matching result.
 
What exactly do you expect to see when "two different virtual universes" are created?
Ships flying in different directions? It can happen even on one machine - computations like that are inherently chaotic, no two runs of Orbiter from the same scenario will produce a bit-by-bit matching result.

Well, I was thinking that if different computers rounded off numbers differently we could end up with a different value for the gravitational constant and things like that. It was just some idle speculation. You answered my question very well Artlav.

спасибо
 
slower CPU will give Orbiter less time to calculate trajectories, resulting in a less precise simulation.
Hi....just want to understand the above more clearly....I was taking an example of say a 2 Ghz CPU...clock cycle 0.5ns...now say we have 3 programs running, the 1st one being orbiter..each consumes 2 clk cycles
then orbiter gets to calculate the orbit every 3 ns....so it will calculate more positions along the orbit.....
instead if the CPU was 2 MHz...then orbiter would get the CPU every 0.5 microsecs...so it would calculate positions along the orbit that are separated by a larger distance(1000 times larger) ...and that is why it would be less precise......is this what you mean ?
 
Not just that, the RK methods that are default propagators in Orbiter will get less and less accurate as the time-step increases.
 
Also exactly how does orbiter maintain synchronisation with the clock in the real world.....1 way that I could think of - for calculating orbits in sync with the real world clock was :

1. Say Simulation starts at time 12:00 hrs...so for all the objects
- Position and velocity vectors are generated according to the scenario and saved
- Time stamp when their position was last updated is saved as 12:00

Then the orbit calculation function say calc() is called

2. calc will call a function say time() which returns the current time....now assume it returns 12:02....then orbiter calculates for each object :

The difference 12:02 - Last position update time = 12:02 - 12:00 = 2 secs
Given the position and velocity vector of the object saved in 1 , it calculates the new position vector after 2 secs. It saves this new position vector and changes the last position update time as 12:02

This continues till sim end....so I guess since the orbit is calculated in discrete steps, the lesser the time gaps between the orbiter getting the CPU, the more the no. of values that are generated for the orbit(more position vectors)

But then I wonder how time acceleration is managed....does it take 2 secs as say 2*10 or 20 secs....for time acceleration of 10....and calculate the position vector after 20 sec instead of 2 secs?....what if the ship is landing...and its supposed to touch ground after 10 secs ?

---------- Post added at 01:59 PM ---------- Previous post was at 01:58 PM ----------

What are the RK methods...and the propagators ?
 
RK - Runge-Kutta methods are a way to numerically approximate a problem of type y' = f(t, y), with an initial value y(t0) = y0 given.

Have a look through the orbiter documentation. A lot of things are explained there nicely. Orbiter\Doc\Technotes.
 
Back
Top