Dear all,
I was running the DSSTPropagation tutorial, and I got some unexpected results (at least from my perspective) when trying to compare the propagated state of the DSST propagator with the corresponding one from the numerical propagator.
I am using the code in the DSSTPropagation class as it is, without applying any modification to it.
The only changes I had to implement were in the associated .yaml file holding the inputs for the simulation. Specifically, I’m setting in the .yaml both “initialOrbitIsOsculating” and “outputOrbitIsOsculating” to true, to enable a meaningful comparison with respect to numerical propagation output. Morevoer, I run few test cases, using in each a different setup of the force models used (see later for details).
I am providing below the results for each test case, where for convenience I am reporting only the position and velocity in km at a given date I selected for testing (14 days from propagation start epoch).
Test case 1 (only 6x6 geopotential, corresponding to default setup):
DSST
time from start (s) position along X (km) position along Y (km) position along Z (km) velocity along X (km) velocity along Y (km) velocity along Z (km)
1209600.00000000000 -2.5453788793846297e+03 -5.1763794489020730e+03 4.3013005597937070e+03 -3.1987758999384988e+00 -3.3047296177848800e+00 -5.8533803459324270e+00
Numerical
time from start (s) position along X (km) position along Y (km) position along Z (km) velocity along X (km) velocity along Y (km) velocity along Z (km)
1209600.00000000000 -2.5396764434146410e+03 -5.1600673432357220e+03 4.3241780097195015e+03 -3.2151893494493330e+00 -3.3212013494010140e+00 -5.8350406192403620e+00
DSST execution time (without large file write) : 2.719
Numerical execution time (including output): 1.553
Difference in position (norm of delta position vector)
28.67 km
Difference in velocity (norm of delta velocity vector)
0.029615 km/s
Test case 2 (full force model with 40x40 geopotential, Sun+Moon third body, drag (area=5.0 m^2, cd=2.0), SRP (area=5.0 m^2, cr=1.2)):
DSST
time from start (s) position along X (km) position along Y (km) position along Z (km) velocity along X (km) velocity along Y (km) velocity along Z (km)
1209600.0000000000 -2.5500687511188790e+03 -5.1795792955146040e+03 4.2943581108833205e+03 -3.1960697147360935e+00 -3.2978478046877710e+00 -5.8589912320143800e+00
Numerical
time from start (s) position along X (km) position along Y (km) position along Z (km) velocity along X (km) velocity along Y (km) velocity along Z (km)
1209600.00000000000 -2.4529313875578036e+03 -5.0678381035775380e+03 4.4795981857412800e+03 -3.2875023751665213e+00 -3.4678823032998585e+00 -5.7086061329577660e+00
DSST execution time (without large file write) : 31.607
Numerical execution time (including output): 23.363
Difference in position (norm of delta position vector)
237.14 km
Difference in velocity (norm of delta velocity vector)
0.2447 km/s
Test case 3 (force model with Sun+Moon third body, drag (area=5.0 m^2, cd=2.0), SRP (area=5.0 m^2, cr=1.2)):
DSST
time from start (s) position along X (km) position along Y (km) position along Z (km) velocity along X (km) velocity along Y (km) velocity along Z (km)
1209600.000000000 5.3884825614808080e+02 -9.9390158981442240e+02 7.1067305889496430e+03 -5.4441994291983740e+00 -5.0721742075551990e+00 - 2.9957683042493455e-01
Numerical
time from start (s) position along X (km) position along Y (km) position along Z (km) velocity along X (km) velocity along Y (km) velocity along Z (km)
1209600.000000000 5.3874220520087060e+02 -9.9400037501156190e+02 7.1067246353801500e+03 -5.4442107504746510e+00 -5.0721534238986300e+00 -2.9972492472615525e-01
DSST execution time (without large file write) : 3.518
Numerical execution time (including output): 15.961
Difference in position (norm of delta position vector)
0.1451 km
Difference in velocity (norm of delta velocity vector)
1.4997e-04 km/s
As you can see above, I am considering also a test case where using all the force models that can be set in DSST propagator, but neglecting the geopotential, as I could see that there are few bug issues still open about DSST propagator, where the geopotential force model seems to be affected (so to avoid considering in results the possible effect of bugs still open).
Clearly, all the force models are set similarly in DSST and numerical propagator before making any comparison.
As you can see from the results above, after only 14 days of propagation, in the first two test cases I get errors in propagated position of several kilometers (increasing to hundreds on kilometers in second test case), and errors in propagated velocity of the order of fraction of km/s, but still increasing in second test case.
Are these errors expected (at least in terms of order of magnitude with respect to numerical propagation results)?
I would have expected much smaller differences, but maybe I am wrong.
However, in third test case these errors are way much smaller. Therefore I am suspecting that the discrepancies may be due to the bugs in the DSST geopotential model, can it be?
Moreover, in first two test cases (as also reported in results above) I could see DSST computational times higher with respect to numerical propagator computational times, wheres I would have expected the opposite, i.e. DSST to be faster than numerical to some extent.
Only in third test case I can see the expected behaviour in terms of computational times, i.e. DSST being almost x5 times faster than numerical.
Can this behaviour be also due to the open bugs in DSST proapgator?
Again, just to remark that I did not make any change in the tutorial code (i.e. in the Java code), but I changed only few settings in the associated .yaml configuration file, as reported before. Therefore, I am assuming that all the tutorial logic is implemented correctly, and both DSST and numerical propagators are set up correctly.
Looking forward for your feedback about these behaviours, I would like to thank you in advance for your time!