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 theDSSTPropagator
.The solar radiation pressure acceleration is computed through the acceleration model of
SolarRadiationPressure
.- Author:
- Pascal Parraud
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.orekit.propagation.semianalytical.dsst.forces.AbstractGaussianContribution
AbstractGaussianContribution.FieldFourierCjSjCoefficients<T extends CalculusFieldElement<T>>, AbstractGaussianContribution.FieldGaussianShortPeriodicCoefficients<T extends CalculusFieldElement<T>>, AbstractGaussianContribution.FieldIntegrableFunction<T extends CalculusFieldElement<T>>, AbstractGaussianContribution.FieldSlot<T extends CalculusFieldElement<T>>, AbstractGaussianContribution.FieldUijVijCoefficients<T extends CalculusFieldElement<T>>, AbstractGaussianContribution.FourierCjSjCoefficients, AbstractGaussianContribution.GaussianShortPeriodicCoefficients, AbstractGaussianContribution.GaussQuadrature, AbstractGaussianContribution.IntegrableFunction, AbstractGaussianContribution.Slot, AbstractGaussianContribution.UijVijCoefficients
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description DSSTSolarRadiationPressure(double dRef, double pRef, double cr, double area, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, double mu)
Constructor with customizable reference values but spherical spacecraft.DSSTSolarRadiationPressure(double cr, double area, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, double mu)
Simple constructor with default reference values and spherical spacecraft.DSSTSolarRadiationPressure(double dRef, double pRef, ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft, double mu)
Complete constructor.DSSTSolarRadiationPressure(ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, RadiationSensitive spacecraft, double mu)
Simple constructor with default reference values, but custom spacecraft.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getEquatorialRadius()
Get the central body equatorial radius.protected <T extends CalculusFieldElement<T>>
T[]getLLimits(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements)
Compute the limits in L, the true longitude, for integration.protected double[]
getLLimits(SpacecraftState state, AuxiliaryElements auxiliaryElements)
Compute the limits in L, the true longitude, for integration.protected List<ParameterDriver>
getParametersDriversWithoutMu()
Get the drivers for force model parameters except the one for the central attraction coefficient.RadiationSensitive
getSpacecraft()
Get spacecraft shape.-
Methods inherited from class org.orekit.propagation.semianalytical.dsst.forces.AbstractGaussianContribution
getMeanElementRate, getMeanElementRate, getMeanElementRate, getMeanElementRate, getParametersDrivers, init, init, initializeShortPeriodTerms, initializeShortPeriodTerms, registerAttitudeProvider, updateShortPeriodTerms, updateShortPeriodTerms
-
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.semianalytical.dsst.forces.DSSTForceModel
extractParameters, extractParameters, getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectors
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
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 satellitesun
- Sun modelcentralBody
- 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 modelcentralBody
- central body (for shadow computation)spacecraft
- spacecraft modelmu
- 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 satellitesun
- Sun modelcentralBody
- 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 modelcentralBody
- central body shape model (for umbra/penumbra computation)spacecraft
- spacecraft modelmu
- central attraction coefficient- Since:
- 12.0
-
-
Method Detail
-
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 intoAbstractGaussianContribution.getParametersDrivers()
method.- Specified by:
getParametersDriversWithoutMu
in classAbstractGaussianContribution
- 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 classAbstractGaussianContribution
- Parameters:
state
- current state information: date, kinematics, attitudeauxiliaryElements
- 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 classAbstractGaussianContribution
- Type Parameters:
T
- type of the elements- Parameters:
state
- current state information: date, kinematics, attitudeauxiliaryElements
- 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)
-
-