Class DSSTSolarRadiationPressure

java.lang.Object
org.orekit.propagation.semianalytical.dsst.forces.AbstractGaussianContribution
org.orekit.propagation.semianalytical.dsst.forces.DSSTSolarRadiationPressure
All Implemented Interfaces:
EventDetectorsProvider, DSSTForceModel, ParameterDriversProvider

public class DSSTSolarRadiationPressure extends AbstractGaussianContribution
Solar radiation pressure contribution to the DSSTPropagator.

The solar radiation pressure acceleration is computed through the acceleration model of SolarRadiationPressure.

Author:
Pascal Parraud
  • Constructor Details

    • DSSTSolarRadiationPressure

      public DSSTSolarRadiationPressure(double cr, double area, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, double mu)
      Simple constructor with default reference values and spherical spacecraft.

      When this constructor is used, the reference values are:

      • dref = 149597870000.0 m
      • pref = 4.56 10-6 N/m²

      The spacecraft has a spherical shape.

      Parameters:
      cr - satellite radiation pressure coefficient (assuming total specular reflection)
      area - cross sectional area of satellite
      sun - Sun model
      centralBody - central body (for shadow computation)
      mu - central attraction coefficient
      Since:
      12.0
    • DSSTSolarRadiationPressure

      public DSSTSolarRadiationPressure(ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft, double mu)
      Simple constructor with default reference values, but custom spacecraft.

      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 (for shadow computation)
      spacecraft - spacecraft model
      mu - central attraction coefficient
      Since:
      12.0
    • DSSTSolarRadiationPressure

      public DSSTSolarRadiationPressure(double dRef, double pRef, double cr, double area, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, double mu)
      Constructor with customizable reference values but spherical spacecraft.

      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²)
      cr - satellite radiation pressure coefficient (assuming total specular reflection)
      area - cross sectional area of satellite
      sun - Sun model
      centralBody - central body (for shadow computation)
      mu - central attraction coefficient
      Since:
      12.0
    • DSSTSolarRadiationPressure

      public DSSTSolarRadiationPressure(double dRef, double pRef, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft, double mu)
      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 - spacecraft model
      mu - central attraction coefficient
      Since:
      12.0
  • Method Details

    • getSpacecraft

      public RadiationSensitive getSpacecraft()
      Get spacecraft shape.
      Returns:
      the spacecraft shape.
    • getParametersDriversWithoutMu

      protected List<ParameterDriver> getParametersDriversWithoutMu()
      Get the drivers for force model parameters except the one for the central attraction coefficient.

      The driver for central attraction coefficient is automatically added at the last element of the ParameterDriver array into AbstractGaussianContribution.getParametersDrivers() method.

      Specified by:
      getParametersDriversWithoutMu in class AbstractGaussianContribution
      Returns:
      drivers for force model parameters
    • getLLimits

      protected double[] getLLimits(SpacecraftState state, AuxiliaryElements auxiliaryElements)
      Compute the limits in L, the true longitude, for integration.
      Specified by:
      getLLimits in class AbstractGaussianContribution
      Parameters:
      state - current state information: date, kinematics, attitude
      auxiliaryElements - auxiliary elements related to the current orbit
      Returns:
      the integration limits in L
    • getLLimits

      protected <T extends CalculusFieldElement<T>> T[] getLLimits(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements)
      Compute the limits in L, the true longitude, for integration.
      Specified by:
      getLLimits in class AbstractGaussianContribution
      Type Parameters:
      T - type of the elements
      Parameters:
      state - current state information: date, kinematics, attitude
      auxiliaryElements - auxiliary elements related to the current orbit
      Returns:
      the integration limits in L
    • getEquatorialRadius

      public double getEquatorialRadius()
      Get the central body equatorial radius.
      Returns:
      central body equatorial radius (m)