Class AbstractRadiationForceModel

    • Constructor Detail

      • AbstractRadiationForceModel

        protected AbstractRadiationForceModel​(ExtendedPositionProvider sun,
                                              OneAxisEllipsoid centralBody,
                                              EventDetectionSettings eclipseDetectionSettings)
        Default constructor. Only central body is considered.
        Parameters:
        sun - Sun model
        centralBody - central body shape model (for umbra/penumbra computation)
        eclipseDetectionSettings - eclipse detection settings (warning: poor settings will miss eclipses)
        Since:
        13.0
    • Method Detail

      • 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.

        Specified by:
        getEventDetectors in interface EventDetectorsProvider
        Specified by:
        getEventDetectors in interface ForceModel
        Returns:
        stream of event detectors
      • getDefaultEclipseDetectionSettings

        public static EventDetectionSettings getDefaultEclipseDetectionSettings()
        Get the default eclipse detection settings.
        Returns:
        detection settings
        Since:
        13.0
      • getGeneralEclipseAngles

        protected double[] getGeneralEclipseAngles​(Vector3D position,
                                                   Vector3D occultingPosition,
                                                   double occultingRadius,
                                                   Vector3D occultedPosition,
                                                   double occultedRadius)
        Get the useful angles for eclipse computation.
        Parameters:
        position - the satellite's position in the selected frame
        occultingPosition - Oculting body position in the selected frame
        occultingRadius - Occulting body mean radius
        occultedPosition - Occulted body position in the selected frame
        occultedRadius - Occulted body mean radius
        Returns:
        the 3 angles {(satOcculting, satOcculted), Occulting body apparent radius, Occulted body apparent radius}
      • getGeneralEclipseAngles

        protected <T extends CalculusFieldElement<T>> T[] getGeneralEclipseAngles​(FieldVector3D<T> position,
                                                                                  FieldVector3D<T> occultingPosition,
                                                                                  T occultingRadius,
                                                                                  FieldVector3D<T> occultedPosition,
                                                                                  T occultedRadius)
        Get the useful angles for eclipse computation.
        Type Parameters:
        T - extends RealFieldElement
        Parameters:
        occultingPosition - Oculting body position in the selected frame
        occultingRadius - Occulting body mean radius
        occultedPosition - Occulted body position in the selected frame
        occultedRadius - Occulted body mean radius
        position - the satellite's position in the selected frame
        Returns:
        the 3 angles {(satOcculting, satOcculted), Occulting body apparent radius, Occulted body apparent radius}
      • addOccultingBody

        public void addOccultingBody​(ExtendedPositionProvider provider,
                                     double radius)
        Add a new occulting body.

        Central body is already considered, it shall not be added this way.

        Parameters:
        provider - body PV provider
        radius - body mean radius
        See Also:
        addOccultingBody(OneAxisEllipsoid)
      • getOccultingBodies

        public List<OccultationEngine> getOccultingBodies()
        Get all occulting bodies to consider.

        The list always contains at least one element: the central body which is always the first one in the list.

        Returns:
        immutable list of all occulting bodies to consider, including the central body
        Since:
        12.0