Class DSSTAtmosphericDrag
- java.lang.Object
-
- org.orekit.propagation.semianalytical.dsst.forces.AbstractGaussianContribution
-
- org.orekit.propagation.semianalytical.dsst.forces.DSSTAtmosphericDrag
-
- All Implemented Interfaces:
EventDetectorsProvider
,DSSTForceModel
,ParameterDriversProvider
public class DSSTAtmosphericDrag extends AbstractGaussianContribution
Atmospheric drag contribution to theDSSTPropagator
.The drag acceleration is computed through the acceleration model of
DragForce
.- 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 DSSTAtmosphericDrag(DragForce force, double mu)
Simple constructor with custom force.DSSTAtmosphericDrag(Atmosphere atmosphere, double cd, double area, double mu)
Simple constructor assuming spherical spacecraft.DSSTAtmosphericDrag(Atmosphere atmosphere, DragSensitive spacecraft, double mu)
Simple constructor with custom spacecraft.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Atmosphere
getAtmosphere()
Get the atmospheric model.DragForce
getDrag()
Get drag force.Stream<EventDetector>
getEventDetectors()
Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
Stream<FieldEventDetector<T>>getFieldEventDetectors(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.double
getRbar()
Get the critical distance.DragSensitive
getSpacecraft()
Get spacecraft shape.void
setRbar(double rbar)
Set the critical distance from the center of the central body at which the atmosphere is considered to end, i.e.-
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
-
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
-
DSSTAtmosphericDrag
public DSSTAtmosphericDrag(DragForce force, double mu)
Simple constructor with custom force.- Parameters:
force
- atmospheric drag force modelmu
- central attraction coefficient
-
DSSTAtmosphericDrag
public DSSTAtmosphericDrag(Atmosphere atmosphere, double cd, double area, double mu)
Simple constructor assuming spherical spacecraft.- Parameters:
atmosphere
- atmospheric modelcd
- drag coefficientarea
- cross sectionnal area of satellitemu
- central attraction coefficient
-
DSSTAtmosphericDrag
public DSSTAtmosphericDrag(Atmosphere atmosphere, DragSensitive spacecraft, double mu)
Simple constructor with custom spacecraft.- Parameters:
atmosphere
- atmospheric modelspacecraft
- spacecraft modelmu
- central attraction coefficient
-
-
Method Detail
-
getAtmosphere
public Atmosphere getAtmosphere()
Get the atmospheric model.- Returns:
- atmosphere model
-
getRbar
public double getRbar()
Get the critical distance.The critical distance from the center of the central body aims at defining the atmosphere entry/exit.
- Returns:
- the critical distance from the center of the central body (m)
-
setRbar
public void setRbar(double rbar)
Set the critical distance from the center of the central body at which the atmosphere is considered to end, i.e. beyond this distance atmospheric drag is not considered.- Parameters:
rbar
- the critical distance from the center of the central body (m)
-
getEventDetectors
public Stream<EventDetector> getEventDetectors()
Get the discrete events related to the model.This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.
- Returns:
- stream of event detectors
-
getFieldEventDetectors
public <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
Get the discrete events related to the model.This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.
- Type Parameters:
T
- extends CalculusFieldElement<T>- Parameters:
field
- field to which the state belongs- Returns:
- stream of event detectors
-
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
-
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
-
getSpacecraft
public DragSensitive getSpacecraft()
Get spacecraft shape.- Returns:
- spacecraft shape
-
getDrag
public DragForce getDrag()
Get drag force.- Returns:
- drag force
-
-