Class DSSTTesseral
- java.lang.Object
-
- org.orekit.propagation.semianalytical.dsst.forces.DSSTTesseral
-
- All Implemented Interfaces:
EventDetectorsProvider
,DSSTForceModel
,ParameterDriversProvider
public class DSSTTesseral extends Object implements DSSTForceModel
Tesseral contribution to the central body gravitational perturbation.Only resonant tesserals are considered.
- Author:
- Romain Di Costanzo, Pascal Parraud, Bryan Cazabonne (field translation)
-
-
Field Summary
Fields Modifier and Type Field Description static String
CM_COEFFICIENTS
Identifier for cMm coefficients.static String
SHORT_PERIOD_PREFIX
Name of the prefix for short period coefficients keys.static String
SM_COEFFICIENTS
Identifier for sMm coefficients.-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider)
Simple constructor with default reference values.DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider, int maxDegreeTesseralSP, int maxOrderTesseralSP, int maxEccPowTesseralSP, int maxFrequencyShortPeriodics, int maxDegreeMdailyTesseralSP, int maxOrderMdailyTesseralSP, int maxEccPowMdailyTesseralSP)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
T[]getMeanElementRate(FieldSpacecraftState<T> spacecraftState, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
Computes the mean equinoctial elements rates dai / dt.double[]
getMeanElementRate(SpacecraftState spacecraftState, AuxiliaryElements auxiliaryElements, double[] parameters)
Computes the mean equinoctial elements rates dai / dt.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.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 attitudeProvider)
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 class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.semianalytical.dsst.forces.DSSTForceModel
extractParameters, extractParameters, getEventDetectors, getFieldEventDetectors, init, init
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Field Detail
-
SHORT_PERIOD_PREFIX
public static final String SHORT_PERIOD_PREFIX
Name of the prefix for short period coefficients keys.- See Also:
- Constant Field Values
-
CM_COEFFICIENTS
public static final String CM_COEFFICIENTS
Identifier for cMm coefficients.- See Also:
- Constant Field Values
-
SM_COEFFICIENTS
public static final String SM_COEFFICIENTS
Identifier for sMm coefficients.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DSSTTesseral
public DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider)
Simple constructor with default reference values.When this constructor is used, maximum allowed values are used for the short periodic coefficients:
-
maxDegreeTesseralSP
is set toprovider.getMaxDegree()
-
maxOrderTesseralSP
is set toprovider.getMaxOrder()
. -
maxEccPowTesseralSP
is set tomin(4, provider.getMaxOrder())
-
maxFrequencyShortPeriodics
is set tomin(provider.getMaxDegree() + 4, 12)
. This parameter should not exceed 12 as higher values will exceed computer capacity -
maxDegreeMdailyTesseralSP
is set toprovider.getMaxDegree()
-
maxOrderMdailyTesseralSP
is set toprovider.getMaxOrder()
-
maxEccPowMdailyTesseralSP
is set to min(provider.getMaxDegree() - 2, 4). This parameter should not exceed 4 as higher values will exceed computer capacity
- Parameters:
centralBodyFrame
- rotating body framecentralBodyRotationRate
- central body rotation rate (rad/s)provider
- provider for spherical harmonics- Since:
- 10.1
-
-
DSSTTesseral
public DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider, int maxDegreeTesseralSP, int maxOrderTesseralSP, int maxEccPowTesseralSP, int maxFrequencyShortPeriodics, int maxDegreeMdailyTesseralSP, int maxOrderMdailyTesseralSP, int maxEccPowMdailyTesseralSP)
Simple constructor.- Parameters:
centralBodyFrame
- rotating body framecentralBodyRotationRate
- central body rotation rate (rad/s)provider
- provider for spherical harmonicsmaxDegreeTesseralSP
- maximal degree to consider for short periodics tesseral harmonics potential (must be between 2 andprovider.getMaxDegree()
)maxOrderTesseralSP
- maximal order to consider for short periodics tesseral harmonics potential (must be between 0 andprovider.getMaxOrder()
)maxEccPowTesseralSP
- maximum power of the eccentricity to use in summation over s for short periodic tesseral harmonics (without m-daily), should typically not exceed 4 as higher values will exceed computer capacity (must be between 0 andprovider.getMaxOrder()
though, however if order = 0 the value can be anything since it won't be used in the code)maxFrequencyShortPeriodics
- maximum frequency in mean longitude for short periodic computations (typicallymaxDegreeTesseralSP
+maxEccPowTesseralSP and no more than 12
)maxDegreeMdailyTesseralSP
- maximal degree to consider for short periodics m-daily tesseral harmonics potential (must be between 2 andprovider.getMaxDegree()
)maxOrderMdailyTesseralSP
- maximal order to consider for short periodics m-daily tesseral harmonics potential (must be between 0 andprovider.getMaxOrder()
)maxEccPowMdailyTesseralSP
- maximum power of the eccentricity to use in summation over s for m-daily tesseral harmonics, (must be between 0 andmaxDegreeMdailyTesseralSP - 2
, but should typically not exceed 4 as higher values will exceed computer capacity)- Since:
- 7.2
-
-
Method Detail
-
initializeShortPeriodTerms
public 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.
- Specified by:
initializeShortPeriodTerms
in interfaceDSSTForceModel
- Parameters:
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 callingParameterDriversProvider.getParameters(AbsoluteDate)
on force model.- 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
public <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.
- Specified by:
initializeShortPeriodTerms
in interfaceDSSTForceModel
- 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 for specific date (1 value only per parameter driver) obtained for example by callingParameterDriversProvider.getParameters(AbsoluteDate)
on force model orAbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
on gradient converter.- 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)
-
getMeanElementRate
public double[] getMeanElementRate(SpacecraftState spacecraftState, AuxiliaryElements auxiliaryElements, double[] parameters)
Computes the mean equinoctial elements rates dai / dt.- Specified by:
getMeanElementRate
in interfaceDSSTForceModel
- Parameters:
spacecraftState
- 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 callingParameterDriversProvider.getParameters(AbsoluteDate)
on force model.- Returns:
- the mean element rates dai/dt
-
getMeanElementRate
public <T extends CalculusFieldElement<T>> T[] getMeanElementRate(FieldSpacecraftState<T> spacecraftState, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
Computes the mean equinoctial elements rates dai / dt.- Specified by:
getMeanElementRate
in interfaceDSSTForceModel
- Type Parameters:
T
- type of the elements- Parameters:
spacecraftState
- 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 callingParameterDriversProvider.getParameters(Field, FieldAbsoluteDate)
on force model orAbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
on gradient converter.- Returns:
- the mean element rates dai/dt
-
updateShortPeriodTerms
public 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 toDSSTForceModel.initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.- Specified by:
updateShortPeriodTerms
in interfaceDSSTForceModel
- Parameters:
parameters
- values of the force model parameters (all span values for each parameters) obtained for example by callingParameterDriversProvider.getParametersAllValues()
on force model. The extract parameter methodDSSTForceModel.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
-
updateShortPeriodTerms
public <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 toDSSTForceModel.initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.- Specified by:
updateShortPeriodTerms
in interfaceDSSTForceModel
- Type Parameters:
T
- type of the elements- Parameters:
parameters
- values of the force model parameters (all span values for each parameters) obtained for example by callingParameterDriversProvider.getParametersAllValues(Field)
on force model orAbstractGradientConverter.getParameters(FieldSpacecraftState, ParameterDriversProvider)
on gradient converter. The extract parameter methodDSSTForceModel.extractParameters(CalculusFieldElement[], FieldAbsoluteDate)
is called in the method to select the right parameter.meanStates
- mean states information: date, kinematics, attitude
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDrivers
in interfaceParameterDriversProvider
- Returns:
- drivers for parameters
-
registerAttitudeProvider
public void registerAttitudeProvider(AttitudeProvider attitudeProvider)
Register an attitude provider.Register an attitude provider that can be used by the force model.
- Specified by:
registerAttitudeProvider
in interfaceDSSTForceModel
- Parameters:
attitudeProvider
- theAttitudeProvider
-
-