Interface DSSTForceModel
-
- All Superinterfaces:
ParametersDriversProvider
- All Known Implementing Classes:
AbstractGaussianContribution
,DSSTAtmosphericDrag
,DSSTNewtonianAttraction
,DSSTSolarRadiationPressure
,DSSTTesseral
,DSSTThirdBody
,DSSTZonal
,PythonAbstractGaussianContribution
,PythonDSSTForceModel
public interface DSSTForceModel extends ParametersDriversProvider
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
initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
method allowing preliminary computation such as truncation if needed.Then the propagator will call at each step:
- the
getMeanElementRate(SpacecraftState, AuxiliaryElements, double[])
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(double[], 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 Default Methods Modifier and Type Method Description 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.<T extends CalculusFieldElement<T>>
T[]getMeanElementRate(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
Computes the mean equinoctial elements rates dai / dt.double[]
getMeanElementRate(SpacecraftState state, AuxiliaryElements auxiliaryElements, double[] parameters)
Computes the mean equinoctial elements rates dai / dt.default double[]
getParameters()
Get force model parameters.default <T extends CalculusFieldElement<T>>
T[]getParameters(Field<T> field)
Get force model parameters.default <T extends CalculusFieldElement<T>>
voidinit(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
Initialize the force model at the start of propagation.default void
init(SpacecraftState initialState, AbsoluteDate target)
Initialize the force model at the start of propagation.List<ShortPeriodTerms>
initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters)
Performs initialization prior to propagation for the current force model.<T extends CalculusFieldElement<T>>
List<FieldShortPeriodTerms<T>>initializeShortPeriodTerms(FieldAuxiliaryElements<T> auxiliaryElements, PropagationType type, T[] parameters)
Performs initialization prior to propagation for the current force model.void
registerAttitudeProvider(AttitudeProvider provider)
Register an attitude provider.void
updateShortPeriodTerms(double[] parameters, SpacecraftState... meanStates)
Update the short period terms.<T extends CalculusFieldElement<T>>
voidupdateShortPeriodTerms(T[] parameters, FieldSpacecraftState<T>... meanStates)
Update the short period terms.-
Methods inherited from interface org.orekit.utils.ParametersDriversProvider
getParametersDrivers
-
-
-
-
Method Detail
-
init
default void init(SpacecraftState initialState, AbsoluteDate target)
Initialize the force model at the start of propagation.The default implementation of this method does nothing.
- Parameters:
initialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal toinitialState.getDate()
.- Since:
- 11.0
-
init
default <T extends CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
Initialize the force model at the start of propagation.The default implementation of this method does nothing.
- Type Parameters:
T
- type of the elements- Parameters:
initialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal toinitialState.getDate()
.- Since:
- 11.1
-
initializeShortPeriodTerms
List<ShortPeriodTerms> initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters)
Performs initialization prior to propagation for the current force model.This method aims at being called at the very beginning of a propagation.
- Parameters:
auxiliaryElements
- auxiliary elements related to the current orbittype
- type of the elements used during the propagationparameters
- values of the force model parameters- 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)
-
initializeShortPeriodTerms
<T extends CalculusFieldElement<T>> List<FieldShortPeriodTerms<T>> initializeShortPeriodTerms(FieldAuxiliaryElements<T> auxiliaryElements, PropagationType type, T[] parameters)
Performs initialization prior to propagation for the current force model.This method aims at being called at the very beginning of a propagation.
- Type Parameters:
T
- type of the elements- Parameters:
auxiliaryElements
- auxiliary elements related to the current orbittype
- type of the elements used during the propagationparameters
- values of the force model parameters- 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)
-
getParameters
default double[] getParameters()
Get force model parameters.- Returns:
- force model parameters
- Since:
- 9.0
-
getParameters
default <T extends CalculusFieldElement<T>> T[] getParameters(Field<T> field)
Get force model parameters.- Type Parameters:
T
- type of the elements- Parameters:
field
- field to which the elements belong- Returns:
- force model parameters
- Since:
- 9.0
-
getMeanElementRate
double[] getMeanElementRate(SpacecraftState state, AuxiliaryElements auxiliaryElements, double[] parameters)
Computes the mean equinoctial elements rates dai / dt.- Parameters:
state
- current state information: date, kinematics, attitudeauxiliaryElements
- auxiliary elements related to the current orbitparameters
- values of the force model parameters- Returns:
- the mean element rates dai/dt
-
getMeanElementRate
<T extends CalculusFieldElement<T>> T[] getMeanElementRate(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
Computes the mean equinoctial elements rates dai / dt.- Type Parameters:
T
- type of the elements- Parameters:
state
- current state information: date, kinematics, attitudeauxiliaryElements
- auxiliary elements related to the current orbitparameters
- values of the force model parameters- 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
-
getFieldEventsDetectors
<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
-
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(double[] parameters, SpacecraftState... meanStates)
Update the short period terms.The
short period terms
that will be updated are the ones that were returned during the call toinitializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.- Parameters:
parameters
- values of the force model parametersmeanStates
- mean states information: date, kinematics, attitude
-
updateShortPeriodTerms
<T extends CalculusFieldElement<T>> void updateShortPeriodTerms(T[] parameters, FieldSpacecraftState<T>... meanStates)
Update the short period terms.The
short period terms
that will be updated are the ones that were returned during the call toinitializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.- Type Parameters:
T
- type of the elements- Parameters:
parameters
- values of the force model parametersmeanStates
- mean states information: date, kinematics, attitude
-
-