org.orekit.propagation

## Class AbstractPropagator

• ### Fields inherited from interface org.orekit.propagation.Propagator

DEFAULT_MASS
• ### Constructor Summary

Constructors
Modifier Constructor and Description
protected  AbstractPropagator()
Build a new instance.
• ### Method Summary

All Methods
Modifier and Type Method and Description
void addAdditionalStateProvider(AdditionalStateProvider provider)
Add a set of user-specified state parameters to be computed along with the orbit propagation.
protected AbstractMatricesHarvester createHarvester(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
Create the harvester suitable for propagator.
List<AdditionalStateProvider> getAdditionalStateProviders()
Get an unmodifiable list of providers for additional state.
AttitudeProvider getAttitudeProvider()
Get attitude provider.
Frame getFrame()
Get the frame in which the orbit is propagated.
protected AbstractMatricesHarvester getHarvester()
Get the harvester.
SpacecraftState getInitialState()
Get the propagator initial state.
String[] getManagedAdditionalStates()
Get all the names of all managed states.
StepHandlerMultiplexer getMultiplexer()
Get the multiplexer holding all step handlers.
TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
Get the PVCoordinates of the body in the selected frame.
protected AbsoluteDate getStartDate()
Get the start date.
protected void initializeAdditionalStates(AbsoluteDate target)
Initialize the additional state providers at the start of propagation.
protected void initializePropagation()
Initialize propagation.
boolean isAdditionalStateManaged(String name)
Check if an additional state is managed.
SpacecraftState propagate(AbsoluteDate target)
Propagate towards a target date.
void resetInitialState(SpacecraftState state)
Reset the propagator initial state.
void setAttitudeProvider(AttitudeProvider attitudeProvider)
Set attitude provider.
protected void setStartDate(AbsoluteDate startDate)
Set a start date.
MatricesHarvester setupMatricesComputation(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
Set up computation of State Transition Matrix and Jacobians matrix with respect to parameters.
protected void stateChanged(SpacecraftState state)
protected SpacecraftState updateAdditionalStates(SpacecraftState original)
protected SpacecraftState updateUnmanagedStates(SpacecraftState original)
Update state by adding unmanaged states.
• ### 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.Propagator

addEventDetector, clearEventsDetectors, clearStepHandlers, getDefaultLaw, getEphemerisGenerator, getEventsDetectors, propagate, setStepHandler, setStepHandler
• ### Methods inherited from interface org.orekit.utils.PVCoordinatesProvider

getPosition
• ### Constructor Detail

• #### AbstractPropagator

protected AbstractPropagator()
Build a new instance.
• ### Method Detail

• #### setStartDate

protected void setStartDate(AbsoluteDate startDate)
Set a start date.
Parameters:
startDate - start date
• #### getStartDate

protected AbsoluteDate getStartDate()
Get the start date.
Returns:
start date
• #### getAttitudeProvider

public AttitudeProvider getAttitudeProvider()
Get attitude provider.
Specified by:
getAttitudeProvider in interface Propagator
Returns:
attitude provider
• #### setAttitudeProvider

public void setAttitudeProvider(AttitudeProvider attitudeProvider)
Set attitude provider.
Specified by:
setAttitudeProvider in interface Propagator
Parameters:
attitudeProvider - attitude provider
• #### getInitialState

public SpacecraftState getInitialState()
Get the propagator initial state.
Specified by:
getInitialState in interface Propagator
Returns:
initial state
• #### getFrame

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

The propagation frame is the definition frame of the initial state, so this method should be called after this state has been set, otherwise it may return null.

Specified by:
getFrame in interface Propagator
Returns:
frame in which the orbit is propagated
Propagator.resetInitialState(SpacecraftState)
• #### resetInitialState

public void resetInitialState(SpacecraftState state)
Reset the propagator initial state.
Specified by:
resetInitialState in interface Propagator
Parameters:
state - new initial state to consider
• #### getMultiplexer

public StepHandlerMultiplexer getMultiplexer()
Get the multiplexer holding all step handlers.
Specified by:
getMultiplexer in interface Propagator
Returns:
multiplexer holding all step handlers

public void addAdditionalStateProvider(AdditionalStateProvider provider)
Add a set of user-specified state parameters to be computed along with the orbit propagation.
Specified by:
addAdditionalStateProvider in interface Propagator
Parameters:
provider - provider for additional state

public List<AdditionalStateProvider> getAdditionalStateProviders()
Get an unmodifiable list of providers for additional state.
Specified by:
getAdditionalStateProviders in interface Propagator
Returns:
• #### setupMatricesComputation

public MatricesHarvester setupMatricesComputation(String stmName,
RealMatrix initialStm,
DoubleArrayDictionary initialJacobianColumns)
Set up computation of State Transition Matrix and Jacobians matrix with respect to parameters.

If this method is called, both State Transition Matrix and Jacobians with respect to the force models parameters that will be selected when propagation starts will be automatically computed, and the harvester will allow to retrieve them.

The arguments for initial matrices must be compatible with the orbit type and position angle that will be used by the propagator.

The default implementation throws an exception as the method is not supported by all propagators.

Specified by:
setupMatricesComputation in interface Propagator
Parameters:
stmName - State Transition Matrix state name
initialStm - initial State Transition Matrix ∂Y/∂Y₀, if null (which is the most frequent case), assumed to be 6x6 identity
initialJacobianColumns - initial columns of the Jacobians matrix with respect to parameters, if null or if some selected parameters are missing from the dictionary, the corresponding initial column is assumed to be 0
Returns:
harvester to retrieve computed matrices during and after propagation
• #### createHarvester

protected AbstractMatricesHarvester createHarvester(String stmName,
RealMatrix initialStm,
DoubleArrayDictionary initialJacobianColumns)
Create the harvester suitable for propagator.
Parameters:
stmName - State Transition Matrix state name
initialStm - initial State Transition Matrix ∂Y/∂Y₀, if null (which is the most frequent case), assumed to be 6x6 identity
initialJacobianColumns - initial columns of the Jacobians matrix with respect to parameters, if null or if some selected parameters are missing from the dictionary, the corresponding initial column is assumed to be 0
Returns:
harvester to retrieve computed matrices during and after propagation
Since:
11.1
• #### getHarvester

protected AbstractMatricesHarvester getHarvester()
Get the harvester.
Returns:
harvester, or null if it was not created
Since:
11.1
• #### updateUnmanagedStates

protected SpacecraftState updateUnmanagedStates(SpacecraftState original)
Update state by adding unmanaged states.
Parameters:
original - original state
Returns:
updated state, with unmanaged states included
updateAdditionalStates(SpacecraftState)

protected void initializeAdditionalStates(AbsoluteDate target)
Initialize the additional state providers at the start of propagation.
Parameters:
target - date of propagation. Not equal to initialState.getDate().
Since:
11.2

public boolean isAdditionalStateManaged(String name)
Check if an additional state is managed.

Managed states are states for which the propagators know how to compute its evolution. They correspond to additional states for which a provider has been registered by calling the addAdditionalStateProvider method.

Additional states that are present in the initial state but have no evolution method registered are not considered as managed states. These unmanaged additional states are not lost during propagation, though. Their value are piecewise constant between state resets that may change them if some event handler resetState method is called at an event occurrence and happens to change the unmanaged additional state.

Specified by:
isAdditionalStateManaged in interface Propagator
Parameters:
name - name of the additional state
Returns:
true if the additional state is managed

public String[] getManagedAdditionalStates()
Get all the names of all managed states.
Specified by:
getManagedAdditionalStates in interface Propagator
Returns:
names of all managed states
• #### propagate

public SpacecraftState propagate(AbsoluteDate target)
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.

Specified by:
propagate in interface Propagator
Parameters:
target - target date towards which orbit state should be propagated
Returns:
propagated state
• #### getPVCoordinates

public TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date,
Frame frame)
Get the PVCoordinates of the body in the selected frame.
Specified by:
getPVCoordinates in interface PVCoordinatesProvider
Parameters:
date - current date
frame - the frame where to define the position
Returns:
time-stamped position/velocity of the body (m and m/s)
• #### initializePropagation

protected void initializePropagation()
Initialize propagation.
Since:
10.1
• #### stateChanged

protected void stateChanged(SpacecraftState state)
state - new state