Class SolarRadiationPressure
- java.lang.Object
-
- org.orekit.forces.AbstractForceModel
-
- org.orekit.forces.radiation.AbstractRadiationForceModel
-
- org.orekit.forces.radiation.SolarRadiationPressure
-
- All Implemented Interfaces:
ForceModel
,ParametersDriversProvider
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(ExtendedPVCoordinatesProvider, 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 Summary
Constructors Constructor Description SolarRadiationPressure(double dRef, double pRef, ExtendedPVCoordinatesProvider sun, double equatorialRadius, RadiationSensitive spacecraft)
Complete constructor.SolarRadiationPressure(ExtendedPVCoordinatesProvider sun, double equatorialRadius, RadiationSensitive spacecraft)
Simple constructor with default reference values.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldVector3D<T>acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.Vector3D
acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.<T extends CalculusFieldElement<T>>
TgetGeneralEclipseRatio(FieldVector3D<T> position, FieldVector3D<T> occultingPosition, T occultingRadius, FieldVector3D<T> occultedPosition, T occultedRadius)
Get eclipse ratio between to bodies seen from a specific object.double
getGeneralEclipseRatio(Vector3D position, Vector3D occultingPosition, double occultingRadius, Vector3D occultedPosition, double occultedRadius)
Get eclipse ratio between to bodies seen from a specific object.<T extends CalculusFieldElement<T>>
TgetLightingRatio(FieldVector3D<T> position, Frame frame, FieldAbsoluteDate<T> date)
Get the lighting ratio ([0-1]).double
getLightingRatio(Vector3D position, Frame frame, AbsoluteDate date)
Get the lighting ratio ([0-1]).List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.<T extends CalculusFieldElement<T>>
TgetTotalLightingRatio(FieldVector3D<T> position, Frame frame, FieldAbsoluteDate<T> date)
Get the total lighting ratio ([0-1]).double
getTotalLightingRatio(Vector3D position, Frame frame, AbsoluteDate date)
Get the total lighting ratio ([0-1]).-
Methods inherited from class org.orekit.forces.radiation.AbstractRadiationForceModel
addOccultingBody, dependsOnPositionOnly, getEclipseAngles, getEclipseAngles, getEquatorialRadius, getEventsDetectors, getFieldEventsDetectors, getGeneralEclipseAngles, getGeneralEclipseAngles, getOtherOccultingBodies
-
Methods inherited from class org.orekit.forces.AbstractForceModel
complainIfNotSupported, getParameterDriver, isSupported
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution, getParameters, getParameters, init, init
-
-
-
-
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 modelequatorialRadius
- spherical shape model (for umbra/penumbra computation)spacecraft
- the object physical and geometrical information- Since:
- 9.2
-
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 modelequatorialRadius
- spherical shape model (for umbra/penumbra computation)spacecraft
- the object physical and geometrical information- Since:
- 9.2
-
-
Method Detail
-
acceleration
public Vector3D acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters- 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, attitudeparameters
- values of the force model parameters- Returns:
- acceleration in same frame as state
-
getLightingRatio
public double getLightingRatio(Vector3D position, Frame frame, AbsoluteDate date)
Get the lighting ratio ([0-1]). Considers only central body as occulting body.- Parameters:
position
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the date- Returns:
- lighting ratio
- Since:
- 7.1
-
getGeneralEclipseRatio
public double getGeneralEclipseRatio(Vector3D position, Vector3D occultingPosition, double occultingRadius, Vector3D occultedPosition, double occultedRadius)
Get eclipse ratio between to bodies seen from a specific object. Ratio is in [0-1].- Parameters:
position
- the satellite's position in the selected frameoccultingPosition
- the position of the occulting objectoccultingRadius
- the mean radius of the occulting objectoccultedPosition
- the position of the occulted objectoccultedRadius
- the mean radius of the occulted object- Returns:
- eclipse ratio
-
getTotalLightingRatio
public double getTotalLightingRatio(Vector3D position, Frame frame, AbsoluteDate date)
Get the total lighting ratio ([0-1]). This method considers every occulting bodies.- Parameters:
position
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the date- Returns:
- lighting ratio
-
getLightingRatio
public <T extends CalculusFieldElement<T>> T getLightingRatio(FieldVector3D<T> position, Frame frame, FieldAbsoluteDate<T> date)
Get the lighting ratio ([0-1]). Considers only central body as occulting body.- Type Parameters:
T
- extends CalculusFieldElement- Parameters:
position
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the date- Returns:
- lighting ratio
- Since:
- 7.1
-
getGeneralEclipseRatio
public <T extends CalculusFieldElement<T>> T getGeneralEclipseRatio(FieldVector3D<T> position, FieldVector3D<T> occultingPosition, T occultingRadius, FieldVector3D<T> occultedPosition, T occultedRadius)
Get eclipse ratio between to bodies seen from a specific object. Ratio is in [0-1].- Type Parameters:
T
- extends RealFieldElement- Parameters:
position
- the satellite's position in the selected frameoccultingPosition
- the position of the occulting objectoccultingRadius
- the mean radius of the occulting objectoccultedPosition
- the position of the occulted objectoccultedRadius
- the mean radius of the occulted object- Returns:
- eclipse ratio
-
getTotalLightingRatio
public <T extends CalculusFieldElement<T>> T getTotalLightingRatio(FieldVector3D<T> position, Frame frame, FieldAbsoluteDate<T> date)
Get the total lighting ratio ([0-1]). This method considers every occulting bodies.- Type Parameters:
T
- extends RealFieldElement- Parameters:
position
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the date- Returns:
- lighting rati
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Returns:
- drivers for parameters
-
-