Interface FieldEventDetector<T extends org.hipparchus.RealFieldElement<T>>
-
- All Known Implementing Classes:
FieldAbstractDetector
,FieldAltitudeDetector
,FieldApsideDetector
,FieldDateDetector
,FieldEclipseDetector
,FieldElevationDetector
,FieldNodeDetector
public interface FieldEventDetector<T extends org.hipparchus.RealFieldElement<T>>
This interface represents space-dynamics aware events detectors.It mirrors the
FieldODEEventHandler
interface from Hipparchus but provides a space-dynamics interface to the methods.Events detectors are a useful solution to meet the requirements of propagators concerning discrete conditions. The state of each event detector is queried by the integrator at each step. When the sign of the underlying g switching function changes, the step is rejected and reduced, in order to make sure the sign changes occur only at steps boundaries.
When step ends exactly at a switching function sign change, the corresponding event is triggered, by calling the
eventOccurred(FieldSpacecraftState, boolean)
method. The method can do whatever it needs with the event (logging it, performing some processing, ignore it ...). The return value of the method will be used by the propagator to stop or resume propagation, possibly changing the state vector.- Author:
- Luc Maisonobe, Véronique Pommier-Maurussane
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description FieldEventHandler.Action
eventOccurred(FieldSpacecraftState<T> s, boolean increasing)
Handle the event.T
g(FieldSpacecraftState<T> s)
Compute the value of the switching function.T
getMaxCheckInterval()
Get maximal time interval between switching function checks.int
getMaxIterationCount()
Get maximal number of iterations in the event time search.T
getThreshold()
Get the convergence threshold in the event time search.default void
init(FieldSpacecraftState<T> s0, FieldAbsoluteDate<T> t)
Initialize event handler at the start of a propagation.default FieldSpacecraftState<T>
resetState(FieldSpacecraftState<T> oldState)
Reset the state prior to continue propagation.
-
-
-
Method Detail
-
init
default void init(FieldSpacecraftState<T> s0, FieldAbsoluteDate<T> t)
Initialize event handler at the start of a propagation.This method is called once at the start of the propagation. It may be used by the event handler to initialize some internal data if needed.
The default implementation does nothing
- Parameters:
s0
- initial statet
- target time for the integration
-
g
T g(FieldSpacecraftState<T> s)
Compute the value of the switching function. This function must be continuous (at least in its roots neighborhood), as the integrator will need to find its roots to locate the events.- Parameters:
s
- the current state information: date, kinematics, attitude- Returns:
- value of the switching function
-
getThreshold
T getThreshold()
Get the convergence threshold in the event time search.- Returns:
- convergence threshold (s)
-
getMaxCheckInterval
T getMaxCheckInterval()
Get maximal time interval between switching function checks.- Returns:
- maximal time interval (s) between switching function checks
-
getMaxIterationCount
int getMaxIterationCount()
Get maximal number of iterations in the event time search.- Returns:
- maximal number of iterations in the event time search
-
eventOccurred
FieldEventHandler.Action eventOccurred(FieldSpacecraftState<T> s, boolean increasing)
Handle the event.- Parameters:
s
- SpaceCraft state to be used in the evaluationincreasing
- with the event occurred in an "increasing" or "decreasing" slope direction- Returns:
- the Action that the calling detector should pass back to the evaluation system
- Since:
- 7.0
-
resetState
default FieldSpacecraftState<T> resetState(FieldSpacecraftState<T> oldState)
Reset the state prior to continue propagation.This method is called after the step handler has returned and before the next step is started, but only when
eventOccurred(org.orekit.propagation.FieldSpacecraftState<T>, boolean)
has itself returned theFieldEventHandler.Action.RESET_STATE
indicator. It allows the user to reset the state for the next step, without perturbing the step handler of the finishing step. If theeventOccurred(org.orekit.propagation.FieldSpacecraftState<T>, boolean)
never returns theFieldEventHandler.Action.RESET_STATE
indicator, this function will never be called, and it is safe to simply return null.The default implementation simply returns its argument.
- Parameters:
oldState
- old state- Returns:
- new state
- Since:
- 7.0
-
-