public interface DSSTForceModel extends ParametersDriversProvider
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 |
---|---|
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 CalculusFieldElement<T>> |
extractParameters(T[] parameters,
FieldAbsoluteDate<T> date)
Extract the proper parameter drivers' values from the array in input of the
updateShortPeriodTerms method. |
default 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 int |
getNbParametersDriversValue()
Get total number of spans for all the parameters driver.
|
default double[] |
getParameters()
Get force model parameters at specific date (1 value per parameter
driver.
|
default double[] |
getParameters(AbsoluteDate date)
Get force model parameters at specific date (1 value per parameter
driver.
|
default <T extends CalculusFieldElement<T>> |
getParameters(Field<T> field)
Get force model parameters at specific date (1 value per parameter
driver.
|
default <T extends CalculusFieldElement<T>> |
getParameters(Field<T> field,
FieldAbsoluteDate<T> date)
Get force model parameters at specific date (1 value per parameter
driver.
|
default double[] |
getParametersAllValues()
Get force model parameters, return each span value for
each parameter driver.
|
default <T extends CalculusFieldElement<T>> |
getParametersAllValues(Field<T> field)
Get force model parameters, return each span value for
each parameter driver.
|
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.
|
getParametersDrivers
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 for specific date
(1 value only per parameter driver) obtained for example by calling
getParameters(AbsoluteDate)
on force model.<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 parameters for specific date
(1 value only per parameter driver) obtained for example by calling
getParameters(AbsoluteDate)
on force model or
AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParametersDriversProvider)
on gradient converter.default int getNbParametersDriversValue()
default double[] getParametersAllValues()
getParameters(AbsoluteDate)
which return the value of the parameter at a specific date (1 value
per parameter driver)default <T extends CalculusFieldElement<T>> T[] getParametersAllValues(Field<T> field)
getParameters(Field, FieldAbsoluteDate)
which return the value of the parameter at a specific date (1 value
per parameter driver)T
- type of the elementsfield
- field to which the elements belongdefault double[] getParameters()
getParametersAllValues()
which
returns all span values of all parameters.getParameters(AbsoluteDate)
must be used.default double[] getParameters(AbsoluteDate date)
getParametersAllValues()
which
returns all span values of all parameters.date
- date at which the parameters want to be known, can
be new AbsoluteDate() if all the parameters have no validity period
that is to say that they have only 1 estimated value over the all
interval.default <T extends CalculusFieldElement<T>> T[] getParameters(Field<T> field)
getParametersAllValues(Field)
which
returns all span values of all parameters.T
- type of the elementsfield
- field to which the elements belonggetParameters(Field, FieldAbsoluteDate)
must be used.default <T extends CalculusFieldElement<T>> T[] getParameters(Field<T> field, FieldAbsoluteDate<T> date)
getParametersAllValues(Field)
which
returns all span values of all parameters.T
- type of the elementsfield
- field to which the elements belongdate
- field date at which the parameters want to be known, can
be new AbsoluteDate() if all the parameters have no validity period
that is to say that they have only 1 estimated value over the all
interval.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 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 getParameters(AbsoluteDate)
on force model.<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 parameters at state date (only 1 span for
each parameter driver) obtained for example by calling getParameters(Field, FieldAbsoluteDate)
on force model or
AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParametersDriversProvider)
on gradient converter.default EventDetector[] 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 parameters (all span values for each parameters)
obtained for example by calling
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 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 getParametersAllValues(Field)
on force model or
AbstractGradientConverter.getParameters(FieldSpacecraftState, ParametersDriversProvider)
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.