Class FieldParameterDrivenDateIntervalDetector<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.propagation.events.FieldAbstractDetector<FieldParameterDrivenDateIntervalDetector<T>,T>
-
- org.orekit.propagation.events.FieldParameterDrivenDateIntervalDetector<T>
-
- Type Parameters:
T
- type of the field elements
- All Implemented Interfaces:
FieldEventDetector<T>
public class FieldParameterDrivenDateIntervalDetector<T extends CalculusFieldElement<T>> extends FieldAbstractDetector<FieldParameterDrivenDateIntervalDetector<T>,T>
Detector for date intervals that may be offset thanks to parameter drivers.Two dual views can be used for date intervals: either start date/stop date or median date/duration.
start
/stop
drivers andmedian
/duration
drivers work in pair. Both drivers in one pair can be selected and their changes will be propagated to the other pair, but attempting to select drivers in both pairs at the same time will trigger an exception. Changing the value of a driver that is not selected should be avoided as it leads to inconsistencies between the pairs.- Since:
- 11.1
- Author:
- Luc Maisonobe
- See Also:
Propagator.addEventDetector(EventDetector)
-
-
Field Summary
Fields Modifier and Type Field Description static String
DURATION_SUFFIX
Default suffix for duration driver.static String
MEDIAN_SUFFIX
Default suffix for median driver.static String
START_SUFFIX
Default suffix for start driver.static String
STOP_SUFFIX
Default suffix for stop driver.-
Fields inherited from class org.orekit.propagation.events.FieldAbstractDetector
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
-
-
Constructor Summary
Constructors Modifier Constructor Description FieldParameterDrivenDateIntervalDetector(Field<T> field, String prefix, AbsoluteDate refMedian, double refDuration)
Build a new instance.FieldParameterDrivenDateIntervalDetector(Field<T> field, String prefix, AbsoluteDate refStart, AbsoluteDate refStop)
Build a new instance.protected
FieldParameterDrivenDateIntervalDetector(FieldAdaptableInterval<T> maxCheck, T threshold, int maxIter, FieldEventHandler<T> handler, DateDriver start, DateDriver stop, DateDriver median, ParameterDriver duration)
Protected constructor with full parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected FieldParameterDrivenDateIntervalDetector<T>
create(FieldAdaptableInterval<T> newMaxCheck, T newThreshold, int newMaxIter, FieldEventHandler<T> newHandler)
Build a new instance.T
g(FieldSpacecraftState<T> s)
Compute the value of the switching function.ParameterDriver
getDurationDriver()
Get the driver for duration.DateDriver
getMedianDriver()
Get the driver for median date.DateDriver
getStartDriver()
Get the driver for start date.DateDriver
getStopDriver()
Get the driver for stop date.-
Methods inherited from class org.orekit.propagation.events.FieldAbstractDetector
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
-
-
-
-
Field Detail
-
START_SUFFIX
public static final String START_SUFFIX
Default suffix for start driver.- See Also:
- Constant Field Values
-
STOP_SUFFIX
public static final String STOP_SUFFIX
Default suffix for stop driver.- See Also:
- Constant Field Values
-
MEDIAN_SUFFIX
public static final String MEDIAN_SUFFIX
Default suffix for median driver.- See Also:
- Constant Field Values
-
DURATION_SUFFIX
public static final String DURATION_SUFFIX
Default suffix for duration driver.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FieldParameterDrivenDateIntervalDetector
public FieldParameterDrivenDateIntervalDetector(Field<T> field, String prefix, AbsoluteDate refMedian, double refDuration)
Build a new instance.- Parameters:
field
- field to which the elements belongprefix
- prefix to use for parameter drivers namesrefMedian
- reference interval median daterefDuration
- reference duration
-
FieldParameterDrivenDateIntervalDetector
public FieldParameterDrivenDateIntervalDetector(Field<T> field, String prefix, AbsoluteDate refStart, AbsoluteDate refStop)
Build a new instance.- Parameters:
field
- field to which the elements belongprefix
- prefix to use for parameter drivers namesrefStart
- reference interval start daterefStop
- reference interval stop date
-
FieldParameterDrivenDateIntervalDetector
protected FieldParameterDrivenDateIntervalDetector(FieldAdaptableInterval<T> maxCheck, T threshold, int maxIter, FieldEventHandler<T> handler, DateDriver start, DateDriver stop, DateDriver median, ParameterDriver duration)
Protected constructor with full parameters.This constructor is not public as users are expected to use the builder API with the various
withXxx()
methods to set up the instance in a readable manner without using a huge amount of parameters.- Parameters:
maxCheck
- maximum checking intervalthreshold
- convergence threshold (s)maxIter
- maximum number of iterations in the event time searchhandler
- event handler to call at event occurrencesstart
- reference interval start driverstop
- reference interval stop drivermedian
- median date driverduration
- duration driver
-
-
Method Detail
-
create
protected FieldParameterDrivenDateIntervalDetector<T> create(FieldAdaptableInterval<T> newMaxCheck, T newThreshold, int newMaxIter, FieldEventHandler<T> newHandler)
Build a new instance.- Specified by:
create
in classFieldAbstractDetector<FieldParameterDrivenDateIntervalDetector<T extends CalculusFieldElement<T>>,T extends CalculusFieldElement<T>>
- Parameters:
newMaxCheck
- maximum checking intervalnewThreshold
- convergence threshold (s)newMaxIter
- maximum number of iterations in the event time searchnewHandler
- event handler to call at event occurrences- Returns:
- a new instance of the appropriate sub-type
-
getStartDriver
public DateDriver getStartDriver()
Get the driver for start date.Note that the start date is automatically adjusted if either
median date
orduration
areselected
and changed.- Returns:
- driver for start date
-
getStopDriver
public DateDriver getStopDriver()
Get the driver for stop date.Note that the stop date is automatically adjusted if either
median date
orduration
areselected
changed.- Returns:
- driver for stop date
-
getMedianDriver
public DateDriver getMedianDriver()
Get the driver for median date.Note that the median date is automatically adjusted if either
getStartDriver()
start date orstop date
areselected
changed.- Returns:
- driver for median date
-
getDurationDriver
public ParameterDriver getDurationDriver()
Get the driver for duration.Note that the duration is automatically adjusted if either
getStartDriver()
start date orstop date
areselected
changed.- Returns:
- driver for duration
-
g
public T g(FieldSpacecraftState<T> s)
Compute the value of the switching function.The function is positive for dates within the interval defined by applying the parameter drivers shifts to reference dates, and negative for dates outside of this interval. Note that if Δt_start - Δt_stop is less than ref_stop.durationFrom(ref_start), then the interval degenerates to empty and the function never reaches positive values.
- Specified by:
g
in interfaceFieldEventDetector<T extends CalculusFieldElement<T>>
- Specified by:
g
in classFieldAbstractDetector<FieldParameterDrivenDateIntervalDetector<T extends CalculusFieldElement<T>>,T extends CalculusFieldElement<T>>
- Parameters:
s
- the current state information: date, kinematics, attitude- Returns:
- value of the switching function
-
-