org.orekit.propagation.analytical
Class AbstractLyddanePropagator

java.lang.Object
  extended by org.orekit.propagation.AbstractPropagator
      extended by org.orekit.propagation.analytical.AbstractLyddanePropagator
All Implemented Interfaces:
Serializable, MeanOsculatingElementsProvider, Propagator, PVCoordinatesProvider
Direct Known Subclasses:
LyddaneLongPeriodPropagator, LyddaneSecularPropagator

public abstract class AbstractLyddanePropagator
extends AbstractPropagator
implements MeanOsculatingElementsProvider

Abstract Lyddane propagator. This class contains common algorithms to all Lyddane propagators.

Since:
3.2
Version:
$Id: AbstractLyddanePropagator.java 17582 2017-05-10 12:58:16Z bignon $
Author:
Emmanuel Bignon
See Also:
Serialized Form

Nested Class Summary
static class AbstractLyddanePropagator.LyddaneParametersType
          Lyddane parameters types.
 
Field Summary
protected  Orbit secularOrbitIn
          Secular orbit.
 
Fields inherited from class org.orekit.propagation.AbstractPropagator
MASS
 
Fields inherited from interface org.orekit.propagation.Propagator
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
 
Constructor Summary
protected AbstractLyddanePropagator(Orbit secularOrbit, double referenceRadiusIn, double muIn, double c20In, double c30In, double c40In, double c50In, Frame frameIn, ParametersType parametersTypeIn, AttitudeProvider attitudeProvForces, AttitudeProvider attitudeProvEvents, MassProvider massProvider)
          Generic constructor.
 
Method Summary
protected  Orbit computeSecular(Orbit orbit, AbstractLyddanePropagator.LyddaneParametersType fromType)
          Compute secular orbit in body frame from provided orbit.
protected  Orbit convertFrame(Orbit orbit, Frame outputFrame)
          Convert provided orbit in output frame.
 Orbit propagateMeanOrbit(AbsoluteDate date)
          Propagate mean orbit until provided date.
 Orbit propagateOrbit(AbsoluteDate date)
          Extrapolate an orbit up to a specific target date.
protected  Orbit propagateOrbit(AbsoluteDate date, Orbit secularOrbit, Frame outputFrame, AbstractLyddanePropagator.LyddaneParametersType returnType)
          Propagate orbit to provided date.
 void resetInitialState(SpacecraftState state)
          Reset the propagator initial state.
 void setThreshold(double newThreshold)
          Setter for relative convergence threshold for osculating to mean algorithm.
protected  void updateSecularOrbit(Orbit secularOrbit)
          Update for secular Orbit.
 
Methods inherited from class org.orekit.propagation.AbstractPropagator
acceptStep, addAdditionalStateProvider, addAdditionalStateProvider, addEventDetector, basicPropagate, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getInitialState, getMode, getPVCoordinates, getPvProvider, manageStateFrame, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.orekit.propagation.MeanOsculatingElementsProvider
mean2osc, osc2mean
 

Field Detail

secularOrbitIn

protected Orbit secularOrbitIn
Secular orbit.

Constructor Detail

AbstractLyddanePropagator

protected AbstractLyddanePropagator(Orbit secularOrbit,
                                    double referenceRadiusIn,
                                    double muIn,
                                    double c20In,
                                    double c30In,
                                    double c40In,
                                    double c50In,
                                    Frame frameIn,
                                    ParametersType parametersTypeIn,
                                    AttitudeProvider attitudeProvForces,
                                    AttitudeProvider attitudeProvEvents,
                                    MassProvider massProvider)
                             throws OrekitException
Generic constructor.

Parameters:
secularOrbit - initial secular orbit
referenceRadiusIn - reference radius of the central body attraction model (m)
muIn - central attraction coefficient (m3/s2)
c20In - un-normalized 2nd zonal coefficient (about -1.08e-3 for Earth)
c30In - un-normalized 3rd zonal coefficient (about +2.53e-6 for Earth)
c40In - un-normalized 4th zonal coefficient (about +1.62e-6 for Earth)
c50In - un-normalized 5th zonal coefficient (about +2.28e-7 for Earth)
frameIn - frame in which model coefficients are expressed (must be inertial or quasi-inertial).
parametersTypeIn - initial orbit parameters type (mean or osculating)
attitudeProvForces - attitude provider for force computation
attitudeProvEvents - attitude provider for events computation
massProvider - mass provider
Throws:
OrekitException - thrown if failed to build initial state or coefficients frame is not inertial
Method Detail

resetInitialState

public void resetInitialState(SpacecraftState state)
                       throws PropagationException
Reset the propagator initial state.

Specified by:
resetInitialState in interface Propagator
Overrides:
resetInitialState in class AbstractPropagator
Parameters:
state - new initial state to consider
Throws:
PropagationException - if initial state cannot be reset

propagateOrbit

public Orbit propagateOrbit(AbsoluteDate date)
                     throws PropagationException
Extrapolate an orbit up to a specific target date.

Specified by:
propagateOrbit in class AbstractPropagator
Parameters:
date - target date for the orbit
Returns:
extrapolated parameters
Throws:
PropagationException - if some parameters are out of bounds

propagateMeanOrbit

public Orbit propagateMeanOrbit(AbsoluteDate date)
                         throws OrekitException
Propagate mean orbit until provided date.

Specified by:
propagateMeanOrbit in interface MeanOsculatingElementsProvider
Parameters:
date - a date
Returns:
mean orbit at provided date
Throws:
OrekitException - thrown if computation failed

propagateOrbit

protected Orbit propagateOrbit(AbsoluteDate date,
                               Orbit secularOrbit,
                               Frame outputFrame,
                               AbstractLyddanePropagator.LyddaneParametersType returnType)
                        throws PropagationException
Propagate orbit to provided date.

Parameters:
date - a date
secularOrbit - a secular orbit in body frame
outputFrame - output frame
returnType - return type : SECULAR, MEAN or OSCULTATING
Returns:
propagated orbit in output frame to provided date
Throws:
PropagationException - if some parameters are out of bounds

computeSecular

protected Orbit computeSecular(Orbit orbit,
                               AbstractLyddanePropagator.LyddaneParametersType fromType)
                        throws OrekitException
Compute secular orbit in body frame from provided orbit.

An iterative algorithm is used. threshold parameter is used to check convergence of iterations.

Parameters:
orbit - an orbit
fromType - input type
Returns:
secular orbit in body frame
Throws:
OrekitException - thrown if conversion to body frame failed

setThreshold

public void setThreshold(double newThreshold)
Setter for relative convergence threshold for osculating to mean algorithm.

Parameters:
newThreshold - new relative threshold

updateSecularOrbit

protected void updateSecularOrbit(Orbit secularOrbit)
                           throws OrekitException
Update for secular Orbit.

Parameters:
secularOrbit - secular orbit
Throws:
OrekitException - thrown if conversion failed

convertFrame

protected Orbit convertFrame(Orbit orbit,
                             Frame outputFrame)
                      throws OrekitException
Convert provided orbit in output frame.

Parameters:
orbit - orbit
outputFrame - output frame
Returns:
converted orbit in output frame
Throws:
OrekitException - thrown if conversion failed


Copyright © 2017 CNES. All Rights Reserved.