Class StartStopEventsTrigger<A extends EventDetector,O extends EventDetector>

java.lang.Object
org.orekit.forces.maneuvers.trigger.AbstractManeuverTriggers
org.orekit.forces.maneuvers.trigger.StartStopEventsTrigger<A,O>
Type Parameters:
A - type of the start detector
O - type of the stop detector
All Implemented Interfaces:
ManeuverTriggers, ResettableManeuverTriggers, EventDetectorsProvider, ParameterDriversProvider

public class StartStopEventsTrigger<A extends EventDetector,O extends EventDetector> extends AbstractManeuverTriggers
Maneuver triggers based on a pair of event detectors that defines firing start and stop.

The thruster starts firing when the start detector becomes positive. The thruster stops firing when the stop detector becomes positive. The 2 detectors should not be positive at the same time. A date detector is not suited as it does not delimit an interval. They can be both negative at the same time.

Since:
11.1
Author:
Luc Maisonobe
See Also:
  • Constructor Details

    • StartStopEventsTrigger

      public StartStopEventsTrigger(A prototypeStartDetector, O prototypeStopDetector)
      Simple constructor.

      Note that the startDetector and stopDetector passed as an argument are used only as a prototypes from which new detectors will be built using ManeuverTriggerDetector. The original event handlers from the prototype will be ignored and never called.

      If the trigger is used in a field-based propagation, the detector will be automatically converted to a field equivalent. Beware however that the eventOccurred of the converted propagator will call the method with the same name in the prototype detector, in order to get the correct return value.

      Parameters:
      prototypeStartDetector - prototype detector for firing start
      prototypeStopDetector - prototype detector for firing stop
  • Method Details

    • getStartDetector

      public A getStartDetector()
      Getter for the firing start detector.
      Returns:
      firing start detector
    • getStopDetector

      public O getStopDetector()
      Getter for the firing stop detector.
      Returns:
      firing stop detector
    • init

      public void init(SpacecraftState initialState, AbsoluteDate target)
      Initialization method called at propagation start.

      The default implementation does nothing.

      Specified by:
      init in interface ManeuverTriggers
      Overrides:
      init in class AbstractManeuverTriggers
      Parameters:
      initialState - initial spacecraft state (at the start of propagation).
      target - date of propagation. Not equal to initialState.getDate().
    • isFiringOnInitialState

      protected boolean isFiringOnInitialState(SpacecraftState initialState, boolean isForward)
      Method to check if the thruster is firing on initialization. can be called by sub classes
      Specified by:
      isFiringOnInitialState in class AbstractManeuverTriggers
      Parameters:
      initialState - initial spacecraft state
      isForward - if true, propagation will be in the forward direction
      Returns:
      true if firing in propagation direction
    • getEventDetectors

      public Stream<EventDetector> getEventDetectors()
      Get the discrete events related to the model.

      This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called

      Returns:
      stream of event detectors
    • getFieldEventDetectors

      public <S extends CalculusFieldElement<S>> Stream<FieldEventDetector<S>> getFieldEventDetectors(Field<S> field)
      Get the discrete events related to the model.

      This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called

      Type Parameters:
      S - extends CalculusFieldElement<T>
      Parameters:
      field - field to which the state belongs
      Returns:
      stream of event detectors
    • convertStartDetector

      protected <S extends CalculusFieldElement<S>> FieldEventDetector<S> convertStartDetector(Field<S> field, A detector)
      Convert a primitive firing start detector into a field firing start detector.

      The FieldEventDetectionSettings must be set up in conformance with the non-field detector.

      A default implementation is provided but might need to be overridden in specific cases.

      Type Parameters:
      S - type of the field elements
      Parameters:
      field - field to which the state belongs
      detector - primitive firing start detector to convert
      Returns:
      converted firing start detector
    • convertStopDetector

      protected <S extends CalculusFieldElement<S>> FieldEventDetector<S> convertStopDetector(Field<S> field, O detector)
      Convert a primitive firing stop detector into a field firing stop detector.

      The FieldEventDetectionSettings must be set up in conformance with the non-field detector.

      A default implementation is provided but might need to be overridden in specific cases.

      Type Parameters:
      S - type of the field elements
      Parameters:
      field - field to which the state belongs
      detector - primitive firing stop detector to convert
      Returns:
      converted firing stop detector