Class AbstractRadiationForceModel

    • Constructor Detail

      • AbstractRadiationForceModel

        protected AbstractRadiationForceModel​(ExtendedPVCoordinatesProvider sun,
                                              double equatorialRadius)
        Default constructor. Only central body is considered.
        Parameters:
        sun - Sun model
        equatorialRadius - central body spherical shape model (for umbra/penumbra computation)
    • Method Detail

      • dependsOnPositionOnly

        public boolean dependsOnPositionOnly()
        Check if force models depends on position only.
        Returns:
        true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
      • getEventsDetectors

        public Stream<EventDetector> getEventsDetectors()
        Get the discrete events related to the model.
        Returns:
        stream of events detectors
      • getFieldEventsDetectors

        public <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventsDetectors​(Field<T> field)
        Get the discrete events related to the model.
        Type Parameters:
        T - extends CalculusFieldElement<T>
        Parameters:
        field - field to which the state belongs
        Returns:
        stream of events detectors
      • getEclipseAngles

        protected double[] getEclipseAngles​(Vector3D sunPosition,
                                            Vector3D position)
        Get the useful angles for eclipse computation.
        Parameters:
        sunPosition - Sun position in the selected frame
        position - the satellite's position in the selected frame
        Returns:
        the 3 angles {(satCentral, satSun), Central body apparent radius, Sun apparent radius}
      • 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}
      • getEclipseAngles

        protected <T extends CalculusFieldElement<T>> T[] getEclipseAngles​(FieldVector3D<T> sunPosition,
                                                                           FieldVector3D<T> position)
        Get the useful angles for eclipse computation.
        Type Parameters:
        T - extends CalculusFieldElement
        Parameters:
        sunPosition - Sun position in the selected frame
        position - the satellite's position in the selected frame.
        Returns:
        the 3 angles {(satCentral, satSun), Central body apparent radius, Sun 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​(ExtendedPVCoordinatesProvider 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
      • getOtherOccultingBodies

        public Map<ExtendedPVCoordinatesProvider,​Double> getOtherOccultingBodies()
        Getter for other occulting bodies to consider.
        Returns:
        the map of other occulting bodies and corresponding mean radiuses
      • getEquatorialRadius

        public double getEquatorialRadius()
        Getter for equatorial radius.
        Returns:
        central body equatorial radius