Class SolarRadiationPressure

java.lang.Object
org.orekit.forces.radiation.AbstractRadiationForceModel
org.orekit.forces.radiation.SolarRadiationPressure
All Implemented Interfaces:
ForceModel, RadiationForceModel, EventDetectorsProvider, ParameterDriversProvider

public class SolarRadiationPressure extends AbstractRadiationForceModel
Solar radiation pressure force model.

Since Orekit 11.0, it is possible to take into account the eclipses generated by Moon in the solar radiation pressure force model using the AbstractRadiationForceModel.addOccultingBody(ExtendedPositionProvider, double) method.

Example:
SolarRadiationPressure srp = new SolarRadiationPressure(CelestialBodyFactory.getSun(), Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS, new IsotropicRadiationClassicalConvention(50.0, 0.5, 0.5));
srp.addOccultingBody(CelestialBodyFactory.getMoon(), Constants.MOON_EQUATORIAL_RADIUS);

Author:
Fabien Maussion, Édouard Delente, Véronique Pommier-Maurussane, Pascal Parraud
  • Constructor Details

    • SolarRadiationPressure

      public SolarRadiationPressure(ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, 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
      centralBody - central body shape model (for umbra/penumbra computation)
      spacecraft - the object physical and geometrical information
      Since:
      12.0
    • SolarRadiationPressure

      public SolarRadiationPressure(double dRef, double pRef, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft)
      Constructor with default eclipse detection settings.

      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
      centralBody - central body shape model (for umbra/penumbra computation)
      spacecraft - the object physical and geometrical information
      Since:
      12.0
    • SolarRadiationPressure

      public SolarRadiationPressure(double dRef, double pRef, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft, EventDetectionSettings eclipseDetectionSettings)
      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
      centralBody - central body shape model (for umbra/penumbra computation)
      spacecraft - the object physical and geometrical information
      eclipseDetectionSettings - event detection settings for penumbra and umbra
      Since:
      13.0
  • Method Details

    • getRadiationSensitiveSpacecraft

      public RadiationSensitive getRadiationSensitiveSpacecraft()
      Getter for radiation-sensitive spacecraft.
      Returns:
      radiation-sensitive model
      Since:
      12.1
    • acceleration

      public Vector3D acceleration(SpacecraftState s, double[] parameters)
      Compute acceleration.
      Parameters:
      s - current state information: date, kinematics, attitude
      parameters - values of the force model parameters at state date, only 1 value for each parameterDriver
      Returns:
      acceleration in same frame as state
    • acceleration

      public <T extends CalculusFieldElement<T>> 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 at state date, only 1 value for each parameterDriver
      Returns:
      acceleration in same frame as state
    • getLightingRatio

      public double getLightingRatio(SpacecraftState state)
      Get the lighting ratio ([0-1]).
      Parameters:
      state - spacecraft state
      Returns:
      lighting ratio
      Since:
      7.1
    • getLightingRatio

      public <T extends CalculusFieldElement<T>> T getLightingRatio(FieldSpacecraftState<T> state)
      Get the lighting ratio ([0-1]).
      Type Parameters:
      T - extends CalculusFieldElement
      Parameters:
      state - spacecraft state
      Returns:
      lighting ratio
      Since:
      7.1
    • getParametersDrivers

      public List<ParameterDriver> getParametersDrivers()
      Get the drivers for parameters.
      Returns:
      drivers for parameters