Remove step size limitations in analytic propagators
See discussion at https://forum.orekit.org/t/stepsize-hardcoded-for-master-mode-in-analyticalpropagator-change/1243
The offending code is:
// evaluate step size
final double stepSize;
if (getMultiplexer().getHandlers().isEmpty()) {
stepSize = dt;
} else {
// we look only at the first handler
final OrekitStepHandler handler = getMultiplexer().getHandlers().get(0);
if (handler instanceof OrekitStepNormalizer) {
stepSize = FastMath.copySign(((OrekitStepNormalizer) handler).getFixedTimeStep(), dt);
} else {
stepSize = FastMath.copySign(state.getKeplerianPeriod() / 100, dt);
}
}
which is then used to make analytic propagation slower by limiting it to stepping 1/100th of a rev with a OrekitStepHandler
. Analytic propagation should be able to propagate in one step. The StepInterpolator
calls basicPropagate()
so there is actually no interpolation and hence no need for closely spaced points. This is likely heritage from when shiftedBy()
or actual interpolation was used in the StepInterpolator
.