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
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description SolarRadiationPressure(double dRef, double pRef, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft)
Constructor with default eclipse detection settings.SolarRadiationPressure(double dRef, double pRef, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft, EventDetectionSettings eclipseDetectionSettings)
Complete constructor.SolarRadiationPressure(ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, 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.boolean
dependsOnPositionOnly()
Check if force model depends on position only at a given, fixed date.<T extends CalculusFieldElement<T>>
TgetLightingRatio(FieldSpacecraftState<T> state)
Get the lighting ratio ([0-1]).double
getLightingRatio(SpacecraftState state)
Get the lighting ratio ([0-1]).List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.RadiationSensitive
getRadiationSensitiveSpacecraft()
Getter for radiation-sensitive spacecraft.-
Methods inherited from class org.orekit.forces.radiation.AbstractRadiationForceModel
addOccultingBody, addOccultingBody, getDefaultEclipseDetectionSettings, getEventDetectors, getFieldEventDetectors, getGeneralEclipseAngles, getGeneralEclipseAngles, getOccultingBodies
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectors
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution, dependsOnAttitudeRate, init, init
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
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 modelcentralBody
- 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 modelcentralBody
- 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 modelcentralBody
- central body shape model (for umbra/penumbra computation)spacecraft
- the object physical and geometrical informationeclipseDetectionSettings
- event detection settings for penumbra and umbra- Since:
- 13.0
-
-
Method Detail
-
getRadiationSensitiveSpacecraft
public RadiationSensitive getRadiationSensitiveSpacecraft()
Getter for radiation-sensitive spacecraft.- Returns:
- radiation-sensitive model
- Since:
- 12.1
-
dependsOnPositionOnly
public boolean dependsOnPositionOnly()
Check if force model depends on position only at a given, fixed date.- 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 Vector3D acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- 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, attitudeparameters
- 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
-
-