Class FieldNodeDetector<T extends CalculusFieldElement<T>>

java.lang.Object
org.orekit.propagation.events.FieldAbstractDetector<FieldNodeDetector<T>,T>
org.orekit.propagation.events.FieldNodeDetector<T>
Type Parameters:
T - type of the field elements
All Implemented Interfaces:
FieldEventDetector<T>

public class FieldNodeDetector<T extends CalculusFieldElement<T>> extends FieldAbstractDetector<FieldNodeDetector<T>,T>
Finder for node crossing events.

This class finds equator crossing events (i.e. ascending or descending node crossing).

The default implementation behavior is to continue propagation at descending node crossing and to stop propagation at ascending node crossing. This can be changed by calling FieldAbstractDetector.withHandler(FieldEventHandler) after construction.

Beware that node detection will fail for almost equatorial orbits. If for example a node detector is used to trigger an ImpulseManeuver and the maneuver turn the orbit plane to equator, then the detector may completely fail just after the maneuver has been performed! This is a real case that has been encountered during validation ...

Author:
Luc Maisonobe
See Also:
  • Constructor Details

    • FieldNodeDetector

      public FieldNodeDetector(Field<T> field, Frame frame)
      Build a new instance with default detection settings and stopping handler.
      Parameters:
      field - field
      frame - frame in which the equator is defined (typical values are EME2000 or ITRF)
      Since:
      13.1.2
    • FieldNodeDetector

      public FieldNodeDetector(FieldOrbit<T> orbit, Frame frame)
      Build a new instance.

      The orbit is used only to set an upper bound for the max check interval to period/3 and to set the convergence threshold according to orbit size.

      Parameters:
      orbit - initial orbit
      frame - frame in which the equator is defined (typical values are EME2000 or ITRF)
    • FieldNodeDetector

      public FieldNodeDetector(T threshold, FieldOrbit<T> orbit, Frame frame)
      Build a new instance.

      The orbit is used only to set an upper bound for the max check interval to period/3.

      Parameters:
      threshold - convergence threshold (s)
      orbit - initial orbit
      frame - frame in which the equator is defined (typical values are EME2000 or ITRF)
    • FieldNodeDetector

      protected FieldNodeDetector(FieldEventDetectionSettings<T> detectionSettings, FieldEventHandler<T> handler, Frame frame)
      Constructor with detection settings and handler.
      Parameters:
      detectionSettings - event detection settings
      handler - event handler to call at event occurrences
      frame - frame in which the equator is defined (typical values are EME2000 or ITRF)
      Since:
      13.0
    • FieldNodeDetector

      protected FieldNodeDetector(NodeEventFunction nodeEventFunction, FieldEventDetectionSettings<T> detectionSettings, FieldEventHandler<T> handler)
      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:
      nodeEventFunction - event function
      detectionSettings - event detection settings
      handler - event handler to call at event occurrences values are EME2000 or ITRF)
      Since:
      14.0
  • Method Details