public abstract class AbstractLyddanePropagator extends AbstractPropagator implements MeanOsculatingElementsProvider
Modifier and Type | Class and Description |
---|---|
static class |
AbstractLyddanePropagator.LyddaneParametersType
Lyddane parameters types.
|
Modifier and Type | Field and Description |
---|---|
protected Orbit |
secularOrbitIn
Secular orbit.
|
MASS
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Modifier | Constructor and Description |
---|---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.
|
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
mean2osc, osc2mean
protected Orbit secularOrbitIn
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 PatriusException
secularOrbit
- initial secular orbitreferenceRadiusIn
- 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
- Inertial or quasi-inertial frame in which the model is supposed valid, the Z axis of the frame being the
polar axis of the bodyparametersTypeIn
- initial orbit parameters type (mean or osculating)attitudeProvForces
- attitude provider for force computationattitudeProvEvents
- attitude provider for events computationmassProvider
- mass providerPatriusException
- thrown if failed to build initial state or coefficients frame is not inertialpublic void resetInitialState(SpacecraftState state) throws PropagationException
resetInitialState
in interface Propagator
resetInitialState
in class AbstractPropagator
state
- new initial state to considerPropagationException
- if initial state cannot be resetpublic Orbit propagateOrbit(AbsoluteDate date) throws PropagationException
propagateOrbit
in class AbstractPropagator
date
- target date for the orbitPropagationException
- if some parameters are out of boundspublic Orbit propagateMeanOrbit(AbsoluteDate date) throws PatriusException
propagateMeanOrbit
in interface MeanOsculatingElementsProvider
date
- a datePatriusException
- thrown if computation failedprotected Orbit propagateOrbit(AbsoluteDate date, Orbit secularOrbit, Frame outputFrame, AbstractLyddanePropagator.LyddaneParametersType returnType) throws PropagationException
date
- a datesecularOrbit
- a secular orbit in body frameoutputFrame
- output framereturnType
- return type : SECULAR, MEAN or OSCULTATINGPropagationException
- if some parameters are out of boundsprotected Orbit computeSecular(Orbit orbit, AbstractLyddanePropagator.LyddaneParametersType fromType) throws PatriusException
An iterative algorithm is used. threshold
parameter is used to check convergence of iterations.
orbit
- an orbitfromType
- input typePatriusException
- thrown if conversion to body frame failedpublic void setThreshold(double newThreshold)
newThreshold
- new relative thresholdprotected void updateSecularOrbit(Orbit secularOrbit) throws PatriusException
secularOrbit
- secular orbitPatriusException
- thrown if conversion failedprotected Orbit convertFrame(Orbit orbit, Frame outputFrame) throws PatriusException
orbit
- orbitoutputFrame
- output framePatriusException
- thrown if conversion failedCopyright © 2021 CNES. All rights reserved.