Class SolarRadiationPressure
- java.lang.Object
-
- org.orekit.forces.radiation.AbstractRadiationForceModel
-
- org.orekit.forces.radiation.SolarRadiationPressure
-
- All Implemented Interfaces:
ForceModel
,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(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
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description SolarRadiationPressure(double dRef, double pRef, ExtendedPVCoordinatesProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft)
Complete constructor.SolarRadiationPressure(ExtendedPVCoordinatesProvider 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.<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.-
Methods inherited from class org.orekit.forces.radiation.AbstractRadiationForceModel
addOccultingBody, addOccultingBody, dependsOnPositionOnly, 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
getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution, init, init
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
SolarRadiationPressure
public SolarRadiationPressure(ExtendedPVCoordinatesProvider 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, ExtendedPVCoordinatesProvider sun, OneAxisEllipsoid centralBody, 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 modelcentralBody
- central body shape model (for umbra/penumbra computation)spacecraft
- the object physical and geometrical information- Since:
- 12.0
-
-
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 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
-
-