Long-time user of Orekit, both in Java and the Python wrapper. Thank you for developing and maintaining this amazing suite.
While recently trying out BrouwerLyddanePropagator with an altitude detector, I encountered an OrekitInternalError. Some details:
- Error was reproduced on Orekit 13.1.7 (Java) and Orekit 12.2 (Python JPype wrapper).
- My states are statistically sampled offsets from a mean state, so I’m treating them as mean states, not osculating. This should be fine, because…
- … the code fails only if an event detector is attached. I’ve tried the built-in
AltitudeDetectoras well as severalFunctionalDetectorreplacements; I suspect any event detector will fail, because this orbit is at no risk of decaying. Propagation succeeds without an event detector. - The internal error is thrown during
evaluateStepinEventState.findRootis called, and thischeckcall fails. - My suspicion is numerical error accumulating in the root-finding due to an inclination close to 180 degrees. (The right ascension is also close to 180 degrees, which is ambiguous for equatorial orbits.) I show that propagating to the same timestamp in multiple chunks results in different results, including a
NaNinclination(!) and theOrekitInternalErrorbeing thrown.
Attached below is a minimal example in the Python wrapper. Am I misusing the propagator, or is this a bug?
brouwer_lyddane_propagation.py (3.4 KB)