Class 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)
    • 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:

        Parameters:
        centralBodyFrame - rotating body frame
        centralBodyRotationRate - 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 frame
        centralBodyRotationRate - central body rotation rate (rad/s)
        provider - provider for spherical harmonics
        maxDegreeTesseralSP - 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 capacity (must be between 0 and provider.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 (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)
        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 interface DSSTForceModel
        Parameters:
        auxiliaryElements - auxiliary elements related to the current orbit
        type - type of the elements used during the propagation
        parameters - 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 interface DSSTForceModel
        Type Parameters:
        T - type of the elements
        Parameters:
        auxiliaryElements - auxiliary elements related to the current orbit
        type - type of the elements used during the propagation
        parameters - 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 interface DSSTForceModel
        Parameters:
        spacecraftState - current state information: date, kinematics, attitude
        auxiliaryElements - auxiliary elements related to the current orbit
        parameters - 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 interface DSSTForceModel
        Type Parameters:
        T - type of the elements
        Parameters:
        spacecraftState - current state information: date, kinematics, attitude
        auxiliaryElements - auxiliary elements related to the current orbit
        parameters - values of the force model parameters
        Returns:
        the mean element rates dai/dt
      • getEventsDetectors

        public EventDetector[] getEventsDetectors()
        Get the discrete events related to the model.
        Specified by:
        getEventsDetectors in interface DSSTForceModel
        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 interface DSSTForceModel
        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