Class DSSTTesseral
- java.lang.Object
-
- org.orekit.propagation.semianalytical.dsst.forces.DSSTTesseral
-
- All Implemented Interfaces:
DSSTForceModel
,ParametersDriversProvider
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.
-
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 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> 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
getParameters, getParameters, init, init
-
-
-
-
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- 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- 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- 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- 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 parametersmeanStates
- 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 parametersmeanStates
- mean states information: date, kinematics, attitude
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDrivers
in interfaceParametersDriversProvider
- Returns:
- drivers for parameters
-
getEventsDetectors
public EventDetector[] getEventsDetectors()
Get the discrete events related to the model.- Specified by:
getEventsDetectors
in interfaceDSSTForceModel
- Returns:
- array of events detectors or null if the model is not related to any discrete events
-
getFieldEventsDetectors
public <T extends CalculusFieldElement<T>> FieldEventDetector<T>[] getFieldEventsDetectors(Field<T> field)
Get the discrete events related to the model.- Specified by:
getFieldEventsDetectors
in interfaceDSSTForceModel
- 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
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
-
-