Interface DSSTForceModel
-
- All Known Implementing Classes:
AbstractGaussianContribution,DSSTAtmosphericDrag,DSSTSolarRadiationPressure,DSSTTesseral,DSSTThirdBody,DSSTZonal
public interface DSSTForceModelThis interface represents a force modifying spacecraft motion for aDSSTPropagator.Objects implementing this interface are intended to be added to a
DSST propagatorbefore 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.voidinitializeStep(AuxiliaryElements aux)Performs initialization at each integration step for the current force model.voidregisterAttitudeProvider(AttitudeProvider provider)Register an attitude provider.voidupdateShortPeriodTerms(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 termsthat will be updated are the ones that were returned during the call toinitialize(AuxiliaryElements, boolean).- Parameters:
meanStates- mean states information: date, kinematics, attitude
-
-