java.lang.Object
org.orekit.propagation.semianalytical.dsst.forces.DSSTZonal
All Implemented Interfaces:
EventDetectorsProvider, DSSTForceModel, ParameterDriversProvider

public class DSSTZonal extends Object implements DSSTForceModel
Zonal contribution to the central body gravitational perturbation.
Author:
Romain Di Costanzo, Pascal Parraud, Bryan Cazabonne (field translation)
  • Field Details

    • SHORT_PERIOD_PREFIX

      public static final String SHORT_PERIOD_PREFIX
      Name of the prefix for short period coefficients keys.
      See Also:
  • Constructor Details

    • DSSTZonal

      public DSSTZonal(Frame bodyFixedFrame, UnnormalizedSphericalHarmonicsProvider provider)
      Constructor with default reference values.

      When this constructor is used, maximum allowed values are used for the short periodic coefficients:

      • maxDegreeShortPeriodics is set to provider.getMaxDegree()
      • maxEccPowShortPeriodics is set to min(provider.getMaxDegree() - 1, 4). This parameter should not exceed 4 as higher values will exceed computer capacity
      • maxFrequencyShortPeriodics is set to 2 * provider.getMaxDegree() + 1
      Parameters:
      bodyFixedFrame - rotating body frame

      If set, this frame will be used to compute the Earth pole direction and the zonal contribution. If not, the inertial frame from the propagator will be used.
      Ideally this frame should be always set to ITRF. However, using TOD is advised since it's generally a good trade-off between performance and precision.

      provider - provider for spherical harmonics
      Since:
      12.1
    • DSSTZonal

      public DSSTZonal(UnnormalizedSphericalHarmonicsProvider provider)
      Constructor with bodyFixedFrame = orbit frame, and default reference values.

      Kept for compatibility with anterior versions.

      Setting bodyFixedFrame to null will lead to large errors if the orbit frame is far from Earth rotating frame (GCRF, EME2000...). The error gets smaller as the orbit frame gets closer to Earth rotating frame (MOD, then TOD).

      Parameters:
      provider - provider for spherical harmonics
      Since:
      10.1
      See Also:
      • issue-1104 on the forge

        When this constructor is used, maximum allowed values are used for the short periodic coefficients:

        • maxDegreeShortPeriodics is set to provider.getMaxDegree()
        • maxEccPowShortPeriodics is set to min(provider.getMaxDegree() - 1, 4). This parameter should not exceed 4 as higher values will exceed computer capacity
        • maxFrequencyShortPeriodics is set to 2 * provider.getMaxDegree() + 1
      • issue-1104 on the forge
    • DSSTZonal

      public DSSTZonal(Frame bodyFixedFrame, UnnormalizedSphericalHarmonicsProvider provider, int maxDegreeShortPeriodics, int maxEccPowShortPeriodics, int maxFrequencyShortPeriodics)
      Constructor.
      Parameters:
      bodyFixedFrame - rotating body frame

      If set, this frame will be used to compute the Earth pole direction and the zonal contribution. If not, the inertial frame from the propagator will be used.
      Ideally this frame should be always set to ITRF. However, using TOD is advised since it's a good trade-off between performance and precision.

      provider - provider for spherical harmonics
      maxDegreeShortPeriodics - maximum degree to consider for short periodics zonal harmonics potential (must be between 2 and provider.getMaxDegree())
      maxEccPowShortPeriodics - maximum power of the eccentricity to be used in short periodic computations (must be between 0 and maxDegreeShortPeriodics - 1, but should typically not exceed 4 as higher values will exceed computer capacity)
      maxFrequencyShortPeriodics - maximum frequency in true longitude for short periodic computations (must be between 1 and 2 * maxDegreeShortPeriodics + 1)
      Since:
      12.1
    • DSSTZonal

      public DSSTZonal(UnnormalizedSphericalHarmonicsProvider provider, int maxDegreeShortPeriodics, int maxEccPowShortPeriodics, int maxFrequencyShortPeriodics)
      Constructor with bodyFixedFrame = orbit frame.

      Added for retro-compatibility with anterior versions for initialization.

      Setting bodyFixedFrame to null will lead to large errors if the orbit frame is far from Earth rotating frame (GCRF, EME2000...). The error gets smaller as the orbit frame gets closer to Earth rotating frame (MOD, then TOD).

      Parameters:
      provider - provider for spherical harmonics
      maxDegreeShortPeriodics - maximum degree to consider for short periodics zonal harmonics potential (must be between 2 and provider.getMaxDegree())
      maxEccPowShortPeriodics - maximum power of the eccentricity to be used in short periodic computations (must be between 0 and maxDegreeShortPeriodics - 1, but should typically not exceed 4 as higher values will exceed computer capacity)
      maxFrequencyShortPeriodics - maximum frequency in true longitude for short periodic computations (must be between 1 and 2 * maxDegreeShortPeriodics + 1)
      Since:
      7.2
      See Also:
  • Method Details