Interface DSSTForceModel
-
- All Known Implementing Classes:
AbstractGaussianContribution
,DSSTAtmosphericDrag
,DSSTSolarRadiationPressure
,DSSTTesseral
,DSSTThirdBody
,DSSTZonal
public interface DSSTForceModel
This interface represents a force modifying spacecraft motion for aDSSTPropagator
.Objects implementing this interface are intended to be added to a
DSST propagator
before the propagation is started.The propagator will call at the very beginning of a propagation the
initialize(AuxiliaryElements, boolean)
method allowing preliminary computation such as truncation if needed.Then the propagator will call at each step:
- the
initializeStep(AuxiliaryElements)
method. The force model instance will extract all the elements needed before computing the mean element rates. - the
getMeanElementRate(SpacecraftState)
method. The force model instance will extract all the state data needed to compute the mean element rates that contribute to the mean state derivative. - the
updateShortPeriodTerms(SpacecraftState...)
method, if osculating parameters are desired, on a sample of points within the last step.
- Author:
- Romain Di Constanzo, Pascal Parraud
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description EventDetector[]
getEventsDetectors()
Get the discrete events related to the model.double[]
getMeanElementRate(SpacecraftState state)
Computes the mean equinoctial elements rates dai / dt.List<ShortPeriodTerms>
initialize(AuxiliaryElements aux, boolean meanOnly)
Performs initialization prior to propagation for the current force model.void
initializeStep(AuxiliaryElements aux)
Performs initialization at each integration step for the current force model.void
registerAttitudeProvider(AttitudeProvider provider)
Register an attitude provider.void
updateShortPeriodTerms(SpacecraftState... meanStates)
Update the short period terms.
-
-
-
Method Detail
-
initialize
List<ShortPeriodTerms> initialize(AuxiliaryElements aux, boolean meanOnly)
Performs initialization prior to propagation for the current force model.This method aims at being called at the very beginning of a propagation.
- Parameters:
aux
- auxiliary elements related to the current orbitmeanOnly
- only mean elements are used during the propagation- Returns:
- a list of objects that will hold short period terms (the objects are also retained by the force model, which will update them during propagation)
-
initializeStep
void initializeStep(AuxiliaryElements aux)
Performs initialization at each integration step for the current force model.This method aims at being called before mean elements rates computation.
- Parameters:
aux
- auxiliary elements related to the current orbit
-
getMeanElementRate
double[] getMeanElementRate(SpacecraftState state)
Computes the mean equinoctial elements rates dai / dt.- Parameters:
state
- current state information: date, kinematics, attitude- Returns:
- the mean element rates dai/dt
-
getEventsDetectors
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
-
registerAttitudeProvider
void registerAttitudeProvider(AttitudeProvider provider)
Register an attitude provider.Register an attitude provider that can be used by the force model.
- Parameters:
provider
- theAttitudeProvider
-
updateShortPeriodTerms
void updateShortPeriodTerms(SpacecraftState... meanStates)
Update the short period terms.The
short period terms
that will be updated are the ones that were returned during the call toinitialize(AuxiliaryElements, boolean)
.- Parameters:
meanStates
- mean states information: date, kinematics, attitude
-
-