Class DSSTSolarRadiationPressure
- java.lang.Object
-
- org.orekit.propagation.semianalytical.dsst.forces.AbstractGaussianContribution
-
- org.orekit.propagation.semianalytical.dsst.forces.DSSTSolarRadiationPressure
-
- All Implemented Interfaces:
DSSTForceModel
,ParametersDriversProvider
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
-
-
Constructor Summary
Constructors Constructor Description DSSTSolarRadiationPressure(double dRef, double pRef, double cr, double area, ExtendedPVCoordinatesProvider sun, double equatorialRadius, double mu)
Constructor with customizable reference values but spherical spacecraft.DSSTSolarRadiationPressure(double cr, double area, ExtendedPVCoordinatesProvider sun, double equatorialRadius, double mu)
Simple constructor with default reference values and spherical spacecraft.DSSTSolarRadiationPressure(double dRef, double pRef, ExtendedPVCoordinatesProvider sun, double equatorialRadius, RadiationSensitive spacecraft, double mu)
Complete constructor.DSSTSolarRadiationPressure(ExtendedPVCoordinatesProvider sun, double equatorialRadius, 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.EventDetector[]
getEventsDetectors()
Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
FieldEventDetector<T>[]getFieldEventsDetectors(Field<T> field)
Get the discrete events related to the model.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
getParameters, getParameters
-
-
-
-
Constructor Detail
-
DSSTSolarRadiationPressure
public DSSTSolarRadiationPressure(double cr, double area, ExtendedPVCoordinatesProvider sun, double equatorialRadius, 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 modelequatorialRadius
- central body equatorial radius (for shadow computation)mu
- central attraction coefficient- Since:
- 9.2
-
DSSTSolarRadiationPressure
public DSSTSolarRadiationPressure(ExtendedPVCoordinatesProvider sun, double equatorialRadius, 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 modelequatorialRadius
- central body equatorial radius (for shadow computation)spacecraft
- spacecraft modelmu
- central attraction coefficient- Since:
- 9.2
-
DSSTSolarRadiationPressure
public DSSTSolarRadiationPressure(double dRef, double pRef, double cr, double area, ExtendedPVCoordinatesProvider sun, double equatorialRadius, 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 modelequatorialRadius
- central body equatorial radius (for shadow computation)mu
- central attraction coefficient- Since:
- 9.2
-
DSSTSolarRadiationPressure
public DSSTSolarRadiationPressure(double dRef, double pRef, ExtendedPVCoordinatesProvider sun, double equatorialRadius, 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 modelequatorialRadius
- central body equatorial radius (for shadow computation)spacecraft
- spacecraft modelmu
- central attraction coefficient- Since:
- 9.2
-
-
Method Detail
-
getSpacecraft
public RadiationSensitive getSpacecraft()
Get spacecraft shape.- Returns:
- the spacecraft shape.
-
getEventsDetectors
public EventDetector[] getEventsDetectors()
Get the discrete events related to the model.- Returns:
- array of events detectors or null if the model is not related to any discrete events
-
getFieldEventsDetectors
public <T extends CalculusFieldElement<T>> FieldEventDetector<T>[] getFieldEventsDetectors(Field<T> field)
Get the discrete events related to the model.- Type Parameters:
T
- type of the elements- Parameters:
field
- field used by default- Returns:
- array of events detectors or null if the model is not related to any discrete events
-
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)
-
-