[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Developers] Bug in eventdetector/commons-math?



Le 15/05/2015 22:34, Petrus Hyvönen a écrit :
> Hi again,
> 
> To be more specific, I think it's in the ElevationDetector. If I remove
> this there is no error. Removing the NodeDetector does not remove the error.
> 
> I'm using a custom horizon profile. 

Could you provide us a complete test case reproducing the error? This
means also the orbit date, the frames you use, a reference to the EOP
you use, the horizon profile, the target date for the propagation, the
mode, ... All should be given to full numerical accuracy to ensure we
run the exact same values than you.

The rationale is that the issue you encounter is often linked to very
small numerical inaccuracy, at the level of the last significant bit in
double numbers (i.e. about 15th-16th significant digit in base 10). We
did encounter this a large number of times, it used to be the most
frequent bug in Orekit/Apache Commons Math. However, since a few years,
all issues have been resolved and the code is now quite robust. Since
about 2 years, all issues triggering this error message were usage
error, mainly with event switching function that were not continuous in
the neighborhood of the event, thus not fulfilling the constraints of
the API. If you use a regular ElevationDetector, this should not be the
case though, so your problem should be investigated in depth. For this,
we need to be able to reproduce it.

best regards,
Luc

> 
> Regards
> /Petrus
> 
> 
> On Fri, May 15, 2015 at 8:43 PM, Petrus Hyvönen
> <petrus.hyvonen@gmail.com <mailto:petrus.hyvonen@gmail.com>> wrote:
> 
>     Hi,
> 
>     I'm using NodeDetector and ElevationDetector, both wrapped in a
>     logger.monitorDetector
> 
>     Regards
>     /Petrus
> 
> 
>     On Fri, May 15, 2015 at 8:40 PM, Evan Ward <evan.ward@nrl.navy.mil
>     <mailto:evan.ward@nrl.navy.mil>> wrote:
> 
>         Hi Petrus,
> 
>         Which event detector(s) are you using?
> 
>         Regards,
>         Evan
> 
> 
>         On 05/15/2015 02:25 PM, Petrus Hyvönen wrote:
>>         Hi,
>>
>>         I'm experiencing some strange errors in my propagation with
>>         some eventdetectors, and thought I'd ask you for comments. I'm
>>         using orekit via the pythonwrapper so debugging is a bit complex..
>>
>>         It seems to occur only on certain orbits, but I'm just
>>         changing altitude and inclination (SSO) so seems more like
>>         some math issue. For some orbits it works.
>>
>>         The error stack is:
>>         JavaError:
>>         org.apache.commons.math3.exception.NumberIsTooLargeException:
>>         endpoints do not specify an interval: [60, 59.951]
>>             Java stacktrace:
>>         org.apache.commons.math3.exception.NumberIsTooLargeException:
>>         endpoints do not specify an interval: [60, 59.951]
>>         at
>>         org.apache.commons.math3.analysis.solvers.UnivariateSolverUtils.verifyInterval(UnivariateSolverUtils.java:417)
>>         at
>>         org.apache.commons.math3.analysis.solvers.UnivariateSolverUtils.verifySequence(UnivariateSolverUtils.java:435)
>>         at
>>         org.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver.verifySequence(BaseAbstractUnivariateSolver.java:280)
>>         at
>>         org.apache.commons.math3.analysis.solvers.BracketingNthOrderBrentSolver.doSolve(BracketingNthOrderBrentSolver.java:154)
>>         at
>>         org.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver.solve(BaseAbstractUnivariateSolver.java:199)
>>         at
>>         org.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver.solve(BaseAbstractUnivariateSolver.java:204)
>>         at
>>         org.apache.commons.math3.analysis.solvers.BracketingNthOrderBrentSolver.solve(BracketingNthOrderBrentSolver.java:398)
>>         at
>>         org.orekit.propagation.events.EventState.evaluateStep(EventState.java:231)
>>         at
>>         org.orekit.propagation.analytical.AbstractAnalyticalPropagator.acceptStep(AbstractAnalyticalPropagator.java:279)
>>         at
>>         org.orekit.propagation.analytical.AbstractAnalyticalPropagator.propagate(AbstractAnalyticalPropagator.java:167)
>>         at
>>         org.orekit.propagation.AbstractPropagator.propagate(AbstractPropagator.java:257)
>>
>>
>>         The call (from python) is:
>>         finalState = prop.propagate(self.ore_t[0].shiftedBy(60 * 60 *
>>         24.0 * self.duration))
>>
>>         prop.getInitialState().getOrbit()
>>         <Orbit: keplerian parameters: {a: 7138142.0; e:
>>         7.004623892026274E-7; i: 98.51876854105349; pa: 0.0; raan:
>>         94.9995; v: 0.00700813981787154;}>
>>
>>         the propagator is a:
>>         org.orekit.propagation.analytical.EcksteinHechlerPropagator
>>
>>         I'm running orekit 7.0 with apache math 3.4.2.
>>
>>         Do you have any feeling what could be the issue? I have the
>>         impression that this part of orekit would be very well used,
>>         so maybe it's something I'm doing but hard to see what.
>>
>>         Any inputs appriciated
>>
>>         Best Regards
>>         /Petrus
>>
>>
>>
> 
> 
> 
> 
>     -- 
>     _____________________________________________
>     Petrus Hyvönen, Uppsala, Sweden
>     Mobile Phone/SMS:+46 73 803 19 00 <tel:%2B46%2073%20803%2019%2000>
> 
> 
> 
> 
> -- 
> _____________________________________________
> Petrus Hyvönen, Uppsala, Sweden
> Mobile Phone/SMS:+46 73 803 19 00