org.orekit.propagation.analytical
Class J2DifferentialEffect

java.lang.Object
  extended by org.orekit.propagation.analytical.J2DifferentialEffect
All Implemented Interfaces:
Serializable, AdapterPropagator.DifferentialEffect

public class J2DifferentialEffect
extends Object
implements AdapterPropagator.DifferentialEffect, Serializable

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 t0. 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:
SmallManeuverAnalyticalModel, Serialized Form

Constructor Summary
J2DifferentialEffect(Orbit orbit0, Orbit orbit1, boolean applyBefore, double referenceRadius, double mu, double j2)
          Simple constructor.
J2DifferentialEffect(Orbit orbit0, Orbit orbit1, boolean applyBefore, PotentialCoefficientsProvider gravityField)
          Simple constructor.
J2DifferentialEffect(SpacecraftState original, AdapterPropagator.DifferentialEffect directEffect, boolean applyBefore, double referenceRadius, double mu, double j2)
          Simple constructor.
J2DifferentialEffect(SpacecraftState original, AdapterPropagator.DifferentialEffect directEffect, boolean applyBefore, PotentialCoefficientsProvider gravityField)
          Simple constructor.
 
Method Summary
 Orbit apply(Orbit orbit1)
          Compute the effect of the maneuver on an orbit.
 SpacecraftState apply(SpacecraftState state1)
          Apply the effect to a spacecraft state.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

J2DifferentialEffect

public J2DifferentialEffect(SpacecraftState original,
                            AdapterPropagator.DifferentialEffect directEffect,
                            boolean applyBefore,
                            PotentialCoefficientsProvider gravityField)
                     throws OrekitException
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
Throws:
OrekitException - if gravity field does not contain J2 coefficient

J2DifferentialEffect

public J2DifferentialEffect(Orbit orbit0,
                            Orbit orbit1,
                            boolean applyBefore,
                            PotentialCoefficientsProvider gravityField)
                     throws OrekitException
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
Throws:
OrekitException - if gravity field does not contain J2 coefficient

J2DifferentialEffect

public J2DifferentialEffect(SpacecraftState original,
                            AdapterPropagator.DifferentialEffect directEffect,
                            boolean applyBefore,
                            double referenceRadius,
                            double mu,
                            double j2)
                     throws OrekitException
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 (m3/s2)
j2 - un-normalized zonal coefficient (about +1.08e-3 for Earth)
Throws:
OrekitException - if direct effect cannot be applied

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 (m3/s2)
j2 - un-normalized zonal coefficient (about +1.08e-3 for Earth)
Method Detail

apply

public Orbit apply(Orbit orbit1)
Compute the effect of the maneuver on an orbit.

Parameters:
orbit1 - original orbit at t1, without maneuver
Returns:
orbit at t1, taking the maneuver into account if t1 > t0
See Also:
apply(SpacecraftState)

apply

public SpacecraftState apply(SpacecraftState state1)
                      throws OrekitException
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
Throws:
OrekitException - if effect cannot be computed


Copyright © 2017 CNES. All Rights Reserved.