org.orekit.propagation
Interface Propagator

All Superinterfaces:
PVCoordinatesProvider, Serializable
All Known Subinterfaces:
BoundedPropagator
All Known Implementing Classes:
AbstractEphemeris, AbstractLyddanePropagator, AbstractPropagator, AdapterPropagator, Analytical2DPropagator, AnalyticalIntegratedEphemeris, EcksteinHechlerPropagator, Ephemeris, HermiteEphemeris, IntegratedEphemeris, J2SecularPropagator, KeplerianPropagator, LagrangeEphemeris, LyddaneLongPeriodPropagator, LyddaneSecularPropagator, MultiIntegratedEphemeris, NumericalPropagator, PVCoordinatePropagator, StelaAbstractPropagator, StelaGTOPropagator, TLEPropagator

public interface Propagator
extends PVCoordinatesProvider, Serializable

This interface provides a way to propagate an orbit at any time.

This interface is the top-level abstraction for orbit propagation. It only allows propagation to a predefined date. It is implemented by analytical models which have no time limit, by orbit readers based on external data files, by numerical integrators using rich force models and by continuous models built after numerical integration has been completed and dense output data as been gathered.

Author:
Luc Maisonobe, Véronique Pommier-Maurussane

Field Summary
static int EPHEMERIS_GENERATION_MODE
          Indicator for ephemeris generation mode.
static int MASTER_MODE
          Indicator for master mode.
static int SLAVE_MODE
          Indicator for slave mode.
 
Method Summary
 void addEventDetector(EventDetector detector)
          Add an event detector.
 void clearEventsDetectors()
          Remove all events detectors.
 AttitudeProvider getAttitudeProvider()
          Get attitude provider.
 AttitudeProvider getAttitudeProviderEvents()
          Get attitude provider for events computation.
 AttitudeProvider getAttitudeProviderForces()
          Get attitude provider for forces computation.
 Collection<EventDetector> getEventsDetectors()
          Get all the events detectors that have been added.
 Frame getFrame()
          Get the frame in which the orbit is propagated.
 BoundedPropagator getGeneratedEphemeris()
          Get the ephemeris generated during propagation.
 SpacecraftState getInitialState()
          Get the propagator initial state.
 int getMode()
          Get the current operating mode of the propagator.
 SpacecraftState propagate(AbsoluteDate target)
          Propagate towards a target date.
 SpacecraftState propagate(AbsoluteDate start, AbsoluteDate target)
          Propagate from a start date towards a target date.
 void resetInitialState(SpacecraftState state)
          Reset the propagator initial state.
 void setAttitudeProvider(AttitudeProvider attitudeProvider)
          Set attitude provider for forces and events computation.
 void setAttitudeProviderEvents(AttitudeProvider attitudeProviderEvents)
          Set attitude provider for events computation.
 void setAttitudeProviderForces(AttitudeProvider attitudeProviderForces)
          Set attitude provider for forces computation.
 void setEphemerisMode()
          Set the propagator to ephemeris generation mode.
 void setMasterMode(double h, OrekitFixedStepHandler handler)
          Set the propagator to master mode with fixed steps.
 void setMasterMode(OrekitStepHandler handler)
          Set the propagator to master mode with variable steps.
 void setOrbitFrame(Frame frame)
          Set propagation frame.
 void setSlaveMode()
          Set the propagator to slave mode.
 
Methods inherited from interface org.orekit.utils.PVCoordinatesProvider
getPVCoordinates
 

Field Detail

SLAVE_MODE

static final int SLAVE_MODE
Indicator for slave mode.

See Also:
Constant Field Values

MASTER_MODE

static final int MASTER_MODE
Indicator for master mode.

See Also:
Constant Field Values

EPHEMERIS_GENERATION_MODE

static final int EPHEMERIS_GENERATION_MODE
Indicator for ephemeris generation mode.

See Also:
Constant Field Values
Method Detail

getMode

int getMode()
Get the current operating mode of the propagator.

Returns:
one of SLAVE_MODE, MASTER_MODE, EPHEMERIS_GENERATION_MODE
See Also:
setSlaveMode(), setMasterMode(double, OrekitFixedStepHandler), setMasterMode(OrekitStepHandler), setEphemerisMode()

setSlaveMode

void setSlaveMode()
Set the propagator to slave mode.

This mode is used when the user needs only the final orbit at the target time. The (slave) propagator computes this result and return it to the calling (master) application, without any intermediate feedback.

This is the default mode.

See Also:
setMasterMode(double, OrekitFixedStepHandler), setMasterMode(OrekitStepHandler), setEphemerisMode(), getMode(), SLAVE_MODE

setMasterMode

void setMasterMode(double h,
                   OrekitFixedStepHandler handler)
Set the propagator to master mode with fixed steps.

This mode is used when the user needs to have some custom function called at the end of each finalized step during integration. The (master) propagator integration loop calls the (slave) application callback methods at each finalized step.

Parameters:
h - fixed stepsize (s)
handler - handler called at the end of each finalized step
See Also:
setSlaveMode(), setMasterMode(OrekitStepHandler), setEphemerisMode(), getMode(), MASTER_MODE

setMasterMode

void setMasterMode(OrekitStepHandler handler)
Set the propagator to master mode with variable steps.

This mode is used when the user needs to have some custom function called at the end of each finalized step during integration. The (master) propagator integration loop calls the (slave) application callback methods at each finalized step.

Parameters:
handler - handler called at the end of each finalized step
See Also:
setSlaveMode(), setMasterMode(double, OrekitFixedStepHandler), setEphemerisMode(), getMode(), MASTER_MODE

setEphemerisMode

void setEphemerisMode()
Set the propagator to ephemeris generation mode.

This mode is used when the user needs random access to the orbit state at any time between the initial and target times, and in no sequential order. A typical example is the implementation of search and iterative algorithms that may navigate forward and backward inside the propagation range before finding their result.

Beware that since this mode stores all intermediate results, it may be memory intensive for long integration ranges and high precision/short time steps.

See Also:
getGeneratedEphemeris(), setSlaveMode(), setMasterMode(double, OrekitFixedStepHandler), setMasterMode(OrekitStepHandler), getMode(), EPHEMERIS_GENERATION_MODE

setOrbitFrame

void setOrbitFrame(Frame frame)
                   throws OrekitException
Set propagation frame.

Parameters:
frame - the frame to use. This frame must be inertial or pseudo-inertial, otherwise an exception is raised.
Throws:
OrekitException - if frame is not inertial or pseudo-inertial

getGeneratedEphemeris

BoundedPropagator getGeneratedEphemeris()
                                        throws IllegalStateException
Get the ephemeris generated during propagation.

Returns:
generated ephemeris
Throws:
IllegalStateException - if the propagator was not set in ephemeris generation mode before propagation
See Also:
setEphemerisMode()

getInitialState

SpacecraftState getInitialState()
                                throws OrekitException
Get the propagator initial state.

Returns:
initial state
Throws:
OrekitException - if state cannot be retrieved

resetInitialState

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

Parameters:
state - new initial state to consider
Throws:
PropagationException - if initial state cannot be reset

addEventDetector

void addEventDetector(EventDetector detector)
Add an event detector.

Parameters:
detector - event detector to add
See Also:
clearEventsDetectors(), getEventsDetectors()

getEventsDetectors

Collection<EventDetector> getEventsDetectors()
Get all the events detectors that have been added.

Returns:
an unmodifiable collection of the added detectors
See Also:
addEventDetector(EventDetector), clearEventsDetectors()

clearEventsDetectors

void clearEventsDetectors()
Remove all events detectors.

See Also:
addEventDetector(EventDetector), getEventsDetectors()

getAttitudeProvider

AttitudeProvider getAttitudeProvider()
Get attitude provider.

Returns:
attitude provider for forces computation (by default)

getAttitudeProviderForces

AttitudeProvider getAttitudeProviderForces()
Get attitude provider for forces computation.

Returns:
attitude provider for forces computation

getAttitudeProviderEvents

AttitudeProvider getAttitudeProviderEvents()
Get attitude provider for events computation.

Returns:
attitude provider for events computation

setAttitudeProvider

void setAttitudeProvider(AttitudeProvider attitudeProvider)
Set attitude provider for forces and events computation. A default attitude provider is available in ConstantAttitudeLaw.

Parameters:
attitudeProvider - attitude provider

setAttitudeProviderForces

void setAttitudeProviderForces(AttitudeProvider attitudeProviderForces)
Set attitude provider for forces computation. A default attitude provider is available in ConstantAttitudeLaw.

Parameters:
attitudeProviderForces - attitude provider for forces computation

setAttitudeProviderEvents

void setAttitudeProviderEvents(AttitudeProvider attitudeProviderEvents)
Set attitude provider for events computation. A default attitude provider is available in ConstantAttitudeLaw.

Parameters:
attitudeProviderEvents - attitude provider for events computation

getFrame

Frame getFrame()
Get the frame in which the orbit is propagated.

4 cases are possible:

Returns:
frame in which the orbit is propagated

propagate

SpacecraftState propagate(AbsoluteDate target)
                          throws PropagationException
Propagate towards a target date.

Simple propagators use only the target date as the specification for computing the propagated state. More feature rich propagators can consider other information and provide different operating modes or G-stop facilities to stop at pinpointed events occurrences. In these cases, the target date is only a hint, not a mandatory objective.

Parameters:
target - target date towards which orbit state should be propagated
Returns:
propagated state
Throws:
PropagationException - if state cannot be propagated

propagate

SpacecraftState propagate(AbsoluteDate start,
                          AbsoluteDate target)
                          throws PropagationException
Propagate from a start date towards a target date.

Those propagators use a start date and a target date to compute the propagated state. For propagators using event detection mechanism, if the provided start date is different from the initial state date, a first, simple propagation is performed, without processing any event computation. Then complete propagation is performed from start date to target date.

Parameters:
start - start date from which orbit state should be propagated
target - target date to which orbit state should be propagated
Returns:
propagated state
Throws:
PropagationException - if state cannot be propagated


Copyright © 2016 CNES. All Rights Reserved.