Class J2DifferentialEffect

java.lang.Object
org.orekit.propagation.analytical.J2DifferentialEffect
All Implemented Interfaces:
AdapterPropagator.DifferentialEffect

public class J2DifferentialEffect extends Object implements AdapterPropagator.DifferentialEffect
Analytical model for J2 effect.

This class computes the differential effect of J2 due to an initial orbit offset. A typical case is when an inclination maneuver changes an orbit inclination at time t₀. As ascending node drift rate depends on inclination, the change induces a time-dependent change in ascending node for later dates.

Author:
Luc Maisonobe
See Also:
  • Constructor Details

    • J2DifferentialEffect

      public J2DifferentialEffect(SpacecraftState original, AdapterPropagator.DifferentialEffect directEffect, boolean applyBefore, UnnormalizedSphericalHarmonicsProvider gravityField)
      Simple constructor.

      The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

      Parameters:
      original - original state at reference date
      directEffect - direct effect changing the orbit
      applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
      gravityField - gravity field to use
    • J2DifferentialEffect

      public J2DifferentialEffect(Orbit orbit0, Orbit orbit1, boolean applyBefore, UnnormalizedSphericalHarmonicsProvider gravityField)
      Simple constructor.

      The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

      Parameters:
      orbit0 - original orbit at reference date
      orbit1 - shifted orbit at reference date
      applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
      gravityField - gravity field to use
    • J2DifferentialEffect

      public J2DifferentialEffect(SpacecraftState original, AdapterPropagator.DifferentialEffect directEffect, boolean applyBefore, double referenceRadius, double mu, double j2)
      Simple constructor.

      The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

      Parameters:
      original - original state at reference date
      directEffect - direct effect changing the orbit
      applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
      referenceRadius - reference radius of the Earth for the potential model (m)
      mu - central attraction coefficient (m³/s²)
      j2 - un-normalized zonal coefficient (about +1.08e-3 for Earth)
    • J2DifferentialEffect

      public J2DifferentialEffect(Orbit orbit0, Orbit orbit1, boolean applyBefore, double referenceRadius, double mu, double j2)
      Simple constructor.

      The applyBefore parameter is mainly used when the differential effect is associated with a maneuver. In this case, the parameter must be set to false.

      Parameters:
      orbit0 - original orbit at reference date
      orbit1 - shifted orbit at reference date
      applyBefore - if true, effect is applied both before and after reference date, if false it is only applied after reference date
      referenceRadius - reference radius of the Earth for the potential model (m)
      mu - central attraction coefficient (m³/s²)
      j2 - un-normalized zonal coefficient (about +1.08e-3 for Earth)
  • Method Details

    • apply

      public Orbit apply(Orbit orbit1)
      Compute the effect of the maneuver on an orbit.
      Parameters:
      orbit1 - original orbit at t₁, without maneuver
      Returns:
      orbit at t₁, taking the maneuver into account if t₁ > t₀
      See Also:
    • apply

      public SpacecraftState apply(SpacecraftState state1)
      Apply the effect to a spacecraft state.

      Applying the effect may be a no-op in some cases. A typical example is maneuvers, for which the state is changed only for time after the maneuver occurrence.

      Specified by:
      apply in interface AdapterPropagator.DifferentialEffect
      Parameters:
      state1 - original state without the effect
      Returns:
      updated state at the same date, taking the effect into account if meaningful