public interface DSSTForceModel
DSSTPropagator
.
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:
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.updateShortPeriodTerms(double[], SpacecraftState...)
method,
if osculating parameters are desired, on a sample of points within the
last step.Modifier and Type | Method and Description |
---|---|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
<T extends CalculusFieldElement<T>> |
getFieldEventsDetectors(Field<T> field)
Get the discrete events related to the model.
|
<T extends CalculusFieldElement<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>> |
getParameters(Field<T> field)
Get force model parameters.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for force model parameters.
|
default <T extends CalculusFieldElement<T>> |
init(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>> |
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>> |
updateShortPeriodTerms(T[] parameters,
FieldSpacecraftState<T>... meanStates)
Update the short period terms.
|
default void init(SpacecraftState initialState, AbsoluteDate target)
The default implementation of this method does nothing.
initialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal to initialState.getDate()
.default <T extends CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
The default implementation of this method does nothing.
T
- type of the elementsinitialState
- spacecraft state at the start of propagation.target
- date of propagation. Not equal to initialState.getDate()
.List<ShortPeriodTerms> initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters)
This method aims at being called at the very beginning of a propagation.
auxiliaryElements
- auxiliary elements related to the current orbittype
- type of the elements used during the propagationparameters
- values of the force model parameters<T extends CalculusFieldElement<T>> List<FieldShortPeriodTerms<T>> initializeShortPeriodTerms(FieldAuxiliaryElements<T> auxiliaryElements, PropagationType type, T[] parameters)
This method aims at being called at the very beginning of a propagation.
T
- type of the elementsauxiliaryElements
- auxiliary elements related to the current orbittype
- type of the elements used during the propagationparameters
- values of the force model parametersdefault double[] getParameters()
default <T extends CalculusFieldElement<T>> T[] getParameters(Field<T> field)
T
- type of the elementsfield
- field to which the elements belongdouble[] getMeanElementRate(SpacecraftState state, AuxiliaryElements auxiliaryElements, double[] parameters)
state
- current state information: date, kinematics, attitudeauxiliaryElements
- auxiliary elements related to the current orbitparameters
- values of the force model parameters<T extends CalculusFieldElement<T>> T[] getMeanElementRate(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
T
- type of the elementsstate
- current state information: date, kinematics, attitudeauxiliaryElements
- auxiliary elements related to the current orbitparameters
- values of the force model parametersEventDetector[] getEventsDetectors()
<T extends CalculusFieldElement<T>> FieldEventDetector<T>[] getFieldEventsDetectors(Field<T> field)
T
- type of the elementsfield
- field used by defaultvoid registerAttitudeProvider(AttitudeProvider provider)
Register an attitude provider that can be used by the force model.
provider
- the AttitudeProvider
void updateShortPeriodTerms(double[] parameters, SpacecraftState... meanStates)
The short period terms
that will be updated
are the ones that were returned during the call to initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.
parameters
- values of the force model parametersmeanStates
- mean states information: date, kinematics, attitude<T extends CalculusFieldElement<T>> void updateShortPeriodTerms(T[] parameters, FieldSpacecraftState<T>... meanStates)
The short period terms
that will be updated
are the ones that were returned during the call to initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.
T
- type of the elementsparameters
- values of the force model parametersmeanStates
- mean states information: date, kinematics, attitudeList<ParameterDriver> getParametersDrivers()
Copyright © 2002-2022 CS GROUP. All rights reserved.