Class SolarRadiationPressure

  • All Implemented Interfaces:
    ForceModel

    public class SolarRadiationPressure
    extends AbstractForceModel
    Solar radiation pressure force model.
    Author:
    Fabien Maussion, Édouard Delente, Véronique Pommier-Maurussane, Pascal Parraud
    • Constructor Detail

      • SolarRadiationPressure

        public SolarRadiationPressure​(ExtendedPVCoordinatesProvider sun,
                                      double equatorialRadius,
                                      RadiationSensitive spacecraft)
        Simple constructor with default reference values.

        When this constructor is used, the reference values are:

        • dref = 149597870000.0 m
        • pref = 4.56 10-6 N/m²
        Parameters:
        sun - Sun model
        equatorialRadius - spherical shape model (for umbra/penumbra computation)
        spacecraft - the object physical and geometrical information
        Since:
        9.2
      • SolarRadiationPressure

        @Deprecated
        public SolarRadiationPressure​(double dRef,
                                      double pRef,
                                      PVCoordinatesProvider sun,
                                      double equatorialRadius,
                                      RadiationSensitive spacecraft)
        Complete constructor.

        Note that reference solar radiation pressure pRef in N/m² is linked to solar flux SF in W/m² using formula pRef = SF/c where c is the speed of light (299792458 m/s). So at 1UA a 1367 W/m² solar flux is a 4.56 10-6 N/m² solar radiation pressure.

        Parameters:
        dRef - reference distance for the solar radiation pressure (m)
        pRef - reference solar radiation pressure at dRef (N/m²)
        sun - Sun model
        equatorialRadius - spherical shape model (for umbra/penumbra computation)
        spacecraft - the object physical and geometrical information
      • SolarRadiationPressure

        public SolarRadiationPressure​(double dRef,
                                      double pRef,
                                      ExtendedPVCoordinatesProvider sun,
                                      double equatorialRadius,
                                      RadiationSensitive spacecraft)
        Complete constructor.

        Note that reference solar radiation pressure pRef in N/m² is linked to solar flux SF in W/m² using formula pRef = SF/c where c is the speed of light (299792458 m/s). So at 1UA a 1367 W/m² solar flux is a 4.56 10-6 N/m² solar radiation pressure.

        Parameters:
        dRef - reference distance for the solar radiation pressure (m)
        pRef - reference solar radiation pressure at dRef (N/m²)
        sun - Sun model
        equatorialRadius - spherical shape model (for umbra/penumbra computation)
        spacecraft - the object physical and geometrical information
        Since:
        9.2
    • 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
      • acceleration

        public org.hipparchus.geometry.euclidean.threed.Vector3D acceleration​(SpacecraftState s,
                                                                              double[] parameters)
        Compute acceleration.
        Parameters:
        s - current state information: date, kinematics, attitude
        parameters - values of the force model parameters
        Returns:
        acceleration in same frame as state
      • acceleration

        public <T extends org.hipparchus.RealFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration​(FieldSpacecraftState<T> s,
                                                                                                                                     T[] parameters)
        Compute acceleration.
        Type Parameters:
        T - type of the elements
        Parameters:
        s - current state information: date, kinematics, attitude
        parameters - values of the force model parameters
        Returns:
        acceleration in same frame as state
      • getLightingRatio

        public double getLightingRatio​(org.hipparchus.geometry.euclidean.threed.Vector3D position,
                                       Frame frame,
                                       AbsoluteDate date)
        Get the lighting ratio ([0-1]).
        Parameters:
        position - the satellite's position in the selected frame.
        frame - in which is defined the position
        date - the date
        Returns:
        lighting ratio
        Since:
        7.1
      • getLightingRatio

        public <T extends org.hipparchus.RealFieldElement<T>> T getLightingRatio​(org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position,
                                                                                 Frame frame,
                                                                                 FieldAbsoluteDate<T> date)
        Get the lighting ratio ([0-1]).
        Type Parameters:
        T - extends RealFieldElement
        Parameters:
        position - the satellite's position in the selected frame.
        frame - in which is defined the position
        date - the date
        Returns:
        lighting ratio
        Since:
        7.1
      • getEventsDetectors

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

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

        public ParameterDriver[] getParametersDrivers()
        Get the drivers for force model parameters.
        Returns:
        drivers for force model parameters