Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate ODEEventDetector and ODEEventHandler #223

Closed
maisonobe opened this issue Jan 7, 2023 · 0 comments · Fixed by #224
Closed

Separate ODEEventDetector and ODEEventHandler #223

maisonobe opened this issue Jan 7, 2023 · 0 comments · Fixed by #224
Assignees
Milestone

Comments

@maisonobe
Copy link
Contributor

In Hipparchus ODE module, events detection is performed using switching function g. When the sign of this function changes, the event is triggered and eventOccurred is called. Both methods are declared in the ODEEventHandler interface. This has been done this way since years. This is however cumbersome as events detection and events handling cannot be separated.

In Orekit, there are two different interfaces for the same purpose. Users can implement their own event handling and associate it with existing event detectors already provided by the library without needing to rewrite the detectors. This change was made years ago and greatly improved the library. It was really needed because Orekit provides a lot of events detectors. It was not needed up to now in Hipparchus because Hipparchus does not provide any detector by itself.

However, as part of implementing #220, I would like to have a specialized event detector provided by Hipparchus (it would detect the end of the current step), and let users add their own handler for it.

This change intends to reproduce in Hipparchus what has been done for a long time in Orekit: separate events detection and events handling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant