public class DSSTTesseral extends Object implements DSSTForceModel
Only resonant tesserals are considered.
Modifier and Type | Field and 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 and 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.
|
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> 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 force model parameters.
|
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 attitudeProvider)
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameters, getParameters, init, init
public static final String SHORT_PERIOD_PREFIX
public static final String CM_COEFFICIENTS
public static final String SM_COEFFICIENTS
public DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider)
When this constructor is used, maximum allowed values are used for the short periodic coefficients:
maxDegreeTesseralSP
is set to provider.getMaxDegree()
maxOrderTesseralSP
is set to provider.getMaxOrder()
. maxEccPowTesseralSP
is set to 4 maxFrequencyShortPeriodics
is set to min(provider.getMaxDegree() + 4, 12)
.
This parameter should not exceed 12 as higher values will exceed computer capacity maxDegreeMdailyTesseralSP
is set to provider.getMaxDegree()
maxOrderMdailyTesseralSP
is set to provider.getMaxOrder()
maxEccPowMdailyTesseralSP
is set to min(provider.getMaxDegree() - 2, 4).
This parameter should not exceed 4 as higher values will exceed computer capacity centralBodyFrame
- rotating body framecentralBodyRotationRate
- central body rotation rate (rad/s)provider
- provider for spherical harmonicspublic DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider, int maxDegreeTesseralSP, int maxOrderTesseralSP, int maxEccPowTesseralSP, int maxFrequencyShortPeriodics, int maxDegreeMdailyTesseralSP, int maxOrderMdailyTesseralSP, int maxEccPowMdailyTesseralSP)
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 and provider.getMaxDegree()
)maxOrderTesseralSP
- maximal order to consider for short periodics tesseral harmonics potential
(must be between 0 and provider.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 capacitymaxFrequencyShortPeriodics
- maximum frequency in mean longitude for short periodic computations
(typically maxDegreeTesseralSP
+ maxEccPowTesseralSP and no more than 12
)maxDegreeMdailyTesseralSP
- maximal degree to consider for short periodics m-daily tesseral harmonics potential
(must be between 2 and provider.getMaxDegree()
)maxOrderMdailyTesseralSP
- maximal order to consider for short periodics m-daily tesseral harmonics potential
(must be between 0 and provider.getMaxOrder()
)maxEccPowMdailyTesseralSP
- maximum power of the eccentricity to use in summation over s for
m-daily tesseral harmonics, (must be between 0 and maxDegreeMdailyTesseralSP - 2
,
but should typically not exceed 4 as higher values will exceed computer capacity)public List<ShortPeriodTerms> initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters)
This method aims at being called at the very beginning of a propagation.
initializeShortPeriodTerms
in interface DSSTForceModel
auxiliaryElements
- auxiliary elements related to the current orbittype
- type of the elements used during the propagationparameters
- values of the force model parameterspublic <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.
initializeShortPeriodTerms
in interface DSSTForceModel
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 parameterspublic double[] getMeanElementRate(SpacecraftState spacecraftState, AuxiliaryElements auxiliaryElements, double[] parameters)
getMeanElementRate
in interface DSSTForceModel
spacecraftState
- current state information: date, kinematics, attitudeauxiliaryElements
- auxiliary elements related to the current orbitparameters
- values of the force model parameterspublic <T extends CalculusFieldElement<T>> T[] getMeanElementRate(FieldSpacecraftState<T> spacecraftState, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
getMeanElementRate
in interface DSSTForceModel
T
- type of the elementsspacecraftState
- current state information: date, kinematics, attitudeauxiliaryElements
- auxiliary elements related to the current orbitparameters
- values of the force model parameterspublic void updateShortPeriodTerms(double[] parameters, SpacecraftState... meanStates)
The short period terms
that will be updated
are the ones that were returned during the call to DSSTForceModel.initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.
updateShortPeriodTerms
in interface DSSTForceModel
parameters
- values of the force model parametersmeanStates
- mean states information: date, kinematics, attitudepublic <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 DSSTForceModel.initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
.
updateShortPeriodTerms
in interface DSSTForceModel
T
- type of the elementsparameters
- values of the force model parametersmeanStates
- mean states information: date, kinematics, attitudepublic List<ParameterDriver> getParametersDrivers()
getParametersDrivers
in interface DSSTForceModel
public EventDetector[] getEventsDetectors()
getEventsDetectors
in interface DSSTForceModel
public <T extends CalculusFieldElement<T>> FieldEventDetector<T>[] getFieldEventsDetectors(Field<T> field)
getFieldEventsDetectors
in interface DSSTForceModel
T
- type of the elementsfield
- field used by defaultpublic void registerAttitudeProvider(AttitudeProvider attitudeProvider)
Register an attitude provider that can be used by the force model.
registerAttitudeProvider
in interface DSSTForceModel
attitudeProvider
- the AttitudeProvider
Copyright © 2002-2022 CS GROUP. All rights reserved.