public abstract class AbstractPropagator extends Object implements Propagator
Propagator
methods for analytical propagators.
This abstract class allows to provide easily the full set of Propagator
methods, including all propagation modes support and discrete events support for
any simple propagation method.
DEFAULT_MASS
Modifier | Constructor and Description |
---|---|
protected |
AbstractPropagator()
Build a new instance.
|
Modifier and Type | Method and Description |
---|---|
void |
addAdditionalStateProvider(AdditionalStateProvider additionalStateProvider)
Add a set of user-specified state parameters to be computed along with the orbit propagation.
|
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.
|
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 |
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.
|
protected void |
stateChanged(SpacecraftState state)
Notify about a state change.
|
protected SpacecraftState |
updateAdditionalStates(SpacecraftState original)
Update state by adding all additional states.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addEventDetector, clearEventsDetectors, clearStepHandlers, getDefaultLaw, getEphemerisGenerator, getEventsDetectors, propagate, setStepHandler, setStepHandler
protected void setStartDate(AbsoluteDate startDate)
startDate
- start dateprotected AbsoluteDate getStartDate()
public AttitudeProvider getAttitudeProvider()
getAttitudeProvider
in interface Propagator
public void setAttitudeProvider(AttitudeProvider attitudeProvider)
setAttitudeProvider
in interface Propagator
attitudeProvider
- attitude providerpublic SpacecraftState getInitialState()
getInitialState
in interface Propagator
public Frame getFrame()
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.
getFrame
in interface Propagator
Propagator.resetInitialState(SpacecraftState)
public void resetInitialState(SpacecraftState state)
resetInitialState
in interface Propagator
state
- new initial state to considerpublic StepHandlerMultiplexer getMultiplexer()
getMultiplexer
in interface Propagator
public void addAdditionalStateProvider(AdditionalStateProvider additionalStateProvider)
addAdditionalStateProvider
in interface Propagator
additionalStateProvider
- provider for additional statepublic List<AdditionalStateProvider> getAdditionalStateProviders()
getAdditionalStateProviders
in interface Propagator
protected SpacecraftState updateAdditionalStates(SpacecraftState original)
original
- original stateaddAdditionalStateProvider(AdditionalStateProvider)
public boolean isAdditionalStateManaged(String name)
Managed states are states for which the propagators know how to compute
its evolution. They correspond to additional states for which an
additional state provider
has been registered
by calling the addAdditionalStateProvider
method. If the propagator is an integrator-based
propagator
, the states for which a set of additional equations
has
been registered by calling the addAdditionalEquations
method are also counted as managed additional states.
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.
isAdditionalStateManaged
in interface Propagator
name
- name of the additional statepublic String[] getManagedAdditionalStates()
getManagedAdditionalStates
in interface Propagator
public SpacecraftState propagate(AbsoluteDate target)
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.
propagate
in interface Propagator
target
- target date towards which orbit state should be propagatedpublic TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
date
- current dateframe
- the frame where to define the positionprotected void initializePropagation()
protected void stateChanged(SpacecraftState state)
state
- new stateCopyright © 2002-2021 CS GROUP. All rights reserved.