PropagatorParallelizer with DSST Osculating propagators

Hello,

I have an exception when trying to use PropagatorParallelizer with DSST “osculating” propagators. The exception is raised when it tries to interpolate the state: the interpolation is impossible with osculating states. I think it’s because the RK polynomials are not available with the osculating state and only with the mean state.
With only the mean state, it works well (direct interpolation of the propagated state, like for the numerical propagation) but it raises an exception if we request a propagation with an output defined as “osculating”.
Maybe it’s a known behavior in this special case but I’d like to report it.

Exception in thread “main” org.hipparchus.exception.MathIllegalArgumentException: échantillon d’interpolation vide
at org.hipparchus.analysis.interpolation.HermiteInterpolator.checkInterpolation(HermiteInterpolator.java:304)
at org.hipparchus.analysis.interpolation.HermiteInterpolator.value(HermiteInterpolator.java:178)
at org.orekit.propagation.semianalytical.dsst.utilities.ShortPeriodicsInterpolatedCoefficient.value(ShortPeriodicsInterpolatedCoefficient.java:76)
at org.orekit.propagation.semianalytical.dsst.forces.AbstractGaussianContribution$GaussianShortPeriodicCoefficients.value(AbstractGaussianContribution.java:2154)
at org.orekit.propagation.semianalytical.dsst.DSSTPropagator$MeanPlusShortPeriodicMapper.mapArrayToState(DSSTPropagator.java:845)
at org.orekit.propagation.integration.StateMapper.mapArrayToState(StateMapper.java:167)
at org.orekit.propagation.integration.AbstractIntegratedPropagator$AdaptedStepInterpolator.convert(AbstractIntegratedPropagator.java:919)
at org.orekit.propagation.integration.AbstractIntegratedPropagator$AdaptedStepInterpolator.getCurrentState(AbstractIntegratedPropagator.java:897)
at org.orekit.propagation.PropagatorsParallelizer$StepHandlingParameters.getDate(PropagatorsParallelizer.java:392)
at org.orekit.propagation.PropagatorsParallelizer.propagate(PropagatorsParallelizer.java:186)

Hi @Christophe,

It is a known and old bug in Orekit DSST propagation. We first encountered this bug in the Batch Least Squares orbit determination using DSST propagator.

After investigation, we found that this bug is link to the use of the DSST propagator inside a Propagator parallelizer in osculating mode. Meaning that the bug can be encountered outside without orbit determination.

An issue is already open for this bug (#717). I developed two tests to reproduce this bug: one in Orekit 9.2 (i.e. before the introduction of DSST OD) and one in Orekit 10.2 (i.e. after the introduction of DSST OD). However, I did not started working on fixing this issue. Contributions are welcome :slight_smile:

Best regards,
Bryan

Ok, thank you for the answer Bryan.

For the short term, I will avoid to use the propagatorParallelizer and compute the propagations apart. If I find the time, I will try to find what should be modified…

Christophe

Hi,

The issue is now fixed in develop branch.
It will be officially available in the 11.0 release.

Bryan