Custom step handler class declarations

Dear Colleagues,

I am working on updating my simulations based on OREKIT 10.0 and Hipparchus1.? to OREKIT 11.0 and Hipparchus 2.0.

Right now I am updating a field propagation sim and I am trying to reconcile the vintage way of defining a custom step handler class that was declared as

private static class MyStepHandler<T extends RealFieldElement<T>>
		implements FieldOrekitFixedStepHandler<T> { ...

First of all, the RealFieldElement interface has been replaced by CalculusFieldElement when Hipparchus was updated from 1.8 to from Hipparchus 2.0. This is mentioned on the Hipparchus website landing page. I looked at the list of Deprecated interfaces for Hipparchus 2.0 but found no mention of the change. Am I missing something or does the Hipparchus 2.0 API documentation need an update? I would have posted this question on the Hipparchus forum but I cannot find it anymore.

Second,in the old implementation handleStep had isLast as an argument. From the OREKIT tutorials I see that we are now using the finish method to detect the last step. I haven’t been able to find documentation on it so I’m working on this assumption. Is it correct?

Thank you.

Bogdan

Hi @bogdan.udrea

You’re right, RealFieldElement interface has been replaced by CalculusFieldElement. In your application, the only thing to do is to replace the references to the first interface by the second one. That’s what we’ve done in Orekit. There is no @Deprecated annotations because Hipparchus 2.0 is a major version. Therefore, we can modify and remove API. For the documentation, we updated UML diagrams on the Hipparchus website to take into account this change. For instance, you can look at the Numerical Analysis documentation. One thing we forgot and should have done, is a post on the forum to explain to users this change and the straightforward action to take to update their application.

The Hipparchus forum is the same as Orekit. When creating a new topic, you just have to select an Hipparchus category in the different categories.

You’re also right. The finish method now replace the actions previously performed with the isLast parameter.

We are sorry for these important changes in both Orekit and Hipparchus. Switching to a new major version of Orekit is always a difficult task for Orekit’s users. Especially with the 11.0 which introduce a lot of API changes. However, all these changes were performed to considerably improve the user experience. We are aware that we could improve our communications when important changes occur in the library. For example by offering small update tutorials on the forum. However, it is sometimes difficult to find time to do this…
On the other hand, we are always ready to answer any problem of our users if they encounter an issue when updating their version. :slight_smile:

Best regards,
Bryan

1 Like

Thank you @bcazabonne for clarifying. There’s no reason to apologize. After I posted my questions I read @luc 's proposed changes for OREKUT 11 and they make a lot of sense.

As for the Hipparchus forum, I looked at the drop down menu of topics but is shows Hipparchus development so I decided not to post it there because I thought was for the development crew only.

Regards,

Bogdan