Class AdapterPropagator
- All Implemented Interfaces:
Propagator,PVCoordinatesProvider
differential effects.
This propagator is used when a reference propagator does not handle
some effects that we need. A typical example would be an ephemeris
that was computed for a reference orbit, and we want to compute a
station-keeping maneuver on top of this ephemeris, changing its
final state. The principal is to add one or more small maneuvers
analytical models to it and use it as a new propagator, which takes the
maneuvers into account.
From a space flight dynamics point of view, this is a differential correction approach. From a computer science point of view, this is a use of the decorator design pattern.
- Author:
- Luc Maisonobe
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceInterface for orbit differential effects. -
Field Summary
Fields inherited from interface org.orekit.propagation.Propagator
DEFAULT_MASS -
Constructor Summary
ConstructorsConstructorDescriptionAdapterPropagator(Propagator reference) Build a propagator from an underlying reference propagator. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd a differential effect.basicPropagate(AbsoluteDate date) Propagate an orbit without any fancy features.Get the differential effects.Get the propagator initial state.protected doublegetMass(AbsoluteDate date) Get the mass.Get the reference propagator.propagateOrbit(AbsoluteDate date) Extrapolate an orbit up to a specific target date.voidresetInitialState(SpacecraftState state) Reset the propagator initial state.protected voidresetIntermediateState(SpacecraftState state, boolean forward) Reset an intermediate state.Methods inherited from class org.orekit.propagation.analytical.AbstractAnalyticalPropagator
acceptStep, addEventDetector, clearEventsDetectors, clearMatricesComputation, getEphemerisGenerator, getEventDetectors, getJacobiansColumnsNames, getPvProvider, propagateMethods inherited from class org.orekit.propagation.AbstractPropagator
addAdditionalDataProvider, createHarvester, getAdditionalDataProviders, getAttitudeProvider, getFrame, getHarvester, getManagedAdditionalData, getMultiplexer, getStartDate, initializeAdditionalData, initializePropagation, isAdditionalDataManaged, propagate, removeAdditionalDataProvider, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalData, updateUnmanagedDataMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.Propagator
clearStepHandlers, getPosition, getPVCoordinates, getVelocity, setStepHandler, setStepHandler
-
Constructor Details
-
AdapterPropagator
Build a propagator from an underlying reference propagator.The reference propagator can be almost anything, numerical, analytical, and even an ephemeris. It may already take some maneuvers into account.
- Parameters:
reference- reference propagator
-
-
Method Details
-
addEffect
Add a differential effect.- Parameters:
effect- differential effect
-
getPropagator
Get the reference propagator.- Returns:
- reference propagator
-
getEffects
Get the differential effects.- Returns:
- differential effects models, as an unmodifiable list
-
getInitialState
Get the propagator initial state.- Specified by:
getInitialStatein interfacePropagator- Overrides:
getInitialStatein classAbstractPropagator- Returns:
- initial state
-
resetInitialState
Reset the propagator initial state.- Specified by:
resetInitialStatein interfacePropagator- Overrides:
resetInitialStatein classAbstractPropagator- Parameters:
state- new initial state to consider
-
resetIntermediateState
Reset an intermediate state.- Specified by:
resetIntermediateStatein classAbstractAnalyticalPropagator- Parameters:
state- new intermediate state to considerforward- if true, the intermediate state is valid for propagations after itself
-
basicPropagate
Propagate an orbit without any fancy features.This method is similar in spirit to the
AbstractAnalyticalPropagator.propagate(org.orekit.time.AbsoluteDate, org.orekit.time.AbsoluteDate)method, except that it does not call any handler during propagation, nor any discrete events, not additional states. It always stops exactly at the specified date.- Overrides:
basicPropagatein classAbstractAnalyticalPropagator- Parameters:
date- target date for propagation- Returns:
- state at specified date
-
propagateOrbit
Extrapolate an orbit up to a specific target date.- Specified by:
propagateOrbitin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- extrapolated parameters
-
getMass
Get the mass.- Specified by:
getMassin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- mass mass
-