public interface DSSTForceModel extends ParameterDriversProvider, EventDetectorsProvider
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.DATATION_ACCURACY
Modifier and Type | Method and Description |
---|---|
default double[] |
extractParameters(double[] parameters,
AbsoluteDate date)
Extract the proper parameter drivers' values from the array in input of the
updateShortPeriodTerms method. |
default <T extends org.hipparchus.CalculusFieldElement<T>> |
extractParameters(T[] parameters,
FieldAbsoluteDate<T> date)
Extract the proper parameter drivers' values from the array in input of the
updateShortPeriodTerms method. |
default Stream<EventDetector> |
getEventDetectors()
Get the discrete events related to the model.
|
default <T extends org.hipparchus.CalculusFieldElement<T>> |
getFieldEventDetectors(org.hipparchus.Field<T> field)
Get the discrete events related to the model.
|
<T extends org.hipparchus.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 <T extends org.hipparchus.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 org.hipparchus.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 org.hipparchus.CalculusFieldElement<T>> |
updateShortPeriodTerms(T[] parameters,
FieldSpacecraftState<T>... meanStates)
Update the short period terms.
|
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, getParametersDrivers, isSupported
getEventDetectors, getFieldEventDetectors
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 org.hipparchus.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()
.default Stream<EventDetector> getEventDetectors()
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.
getEventDetectors
in interface EventDetectorsProvider
default <T extends org.hipparchus.CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(org.hipparchus.Field<T> field)
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.
getFieldEventDetectors
in interface EventDetectorsProvider
T
- extends CalculusFieldElement<T>field
- field to which the state belongsList<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 for specific date
(1 value only per parameter driver) obtained for example by calling
ParameterDriversProvider.getParameters(AbsoluteDate)
on force model.<T extends org.hipparchus.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 parameters for specific date
(1 value only per parameter driver) obtained for example by calling
ParameterDriversProvider.getParameters(AbsoluteDate)
on force model or
AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
on gradient converter.default double[] extractParameters(double[] parameters, AbsoluteDate date)
updateShortPeriodTerms
method.
Parameters are filtered given an input date.parameters
- the input parameters array containing all span values of all drivers
from which the parameter values at date date wants to be extracteddate
- the datedefault <T extends org.hipparchus.CalculusFieldElement<T>> T[] extractParameters(T[] parameters, FieldAbsoluteDate<T> date)
updateShortPeriodTerms
method. Parameters are filtered given an input date.T
- extends CalculusFieldElementparameters
- the input parameters array containing all span values of all drivers
from which the parameter values at date date wants to be extracteddate
- the datedouble[] 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 at state date (only 1 span for
each parameter driver) obtained for example by calling ParameterDriversProvider.getParameters(AbsoluteDate)
on force model.<T extends org.hipparchus.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 parameters at state date (only 1 span for
each parameter driver) obtained for example by calling ParameterDriversProvider.getParameters(Field, FieldAbsoluteDate)
on force model or
AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
on gradient converter.void 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 parameters (all span values for each parameters)
obtained for example by calling
ParameterDriversProvider.getParametersAllValues()
on force model. The extract parameter method extractParameters(double[], AbsoluteDate)
is called in
the method to select the right parameter corresponding to the mean state date.meanStates
- mean states information: date, kinematics, attitude<T extends org.hipparchus.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 parameters (all span values for each parameters)
obtained for example by calling ParameterDriversProvider.getParametersAllValues(Field)
on force model or
AbstractGradientConverter.getParameters(FieldSpacecraftState, ParameterDriversProvider)
on gradient converter. The extract parameter method
extractParameters(CalculusFieldElement[], FieldAbsoluteDate)
is called in
the method to select the right parameter.meanStates
- mean states information: date, kinematics, attitudeCopyright © 2002-2023 CS GROUP. All rights reserved.