Class FieldAbstractPropagator<T extends CalculusFieldElement<T>>
- Type Parameters:
T- the type of the field elements
- All Implemented Interfaces:
FieldPropagator<T>,FieldPVCoordinatesProvider<T>
- Direct Known Subclasses:
FieldAbstractAnalyticalPropagator,FieldAbstractIntegratedPropagator
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.
- Author:
- Luc Maisonobe
-
Field Summary
Fields inherited from interface org.orekit.propagation.FieldPropagator
DEFAULT_MASS -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFieldAbstractPropagator(Field<T> field) Build a new instance. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAdditionalDataProvider(FieldAdditionalDataProvider<?, T> additionalDataProvider) Add a set of user-specified data to be computed along with the orbit propagation.Get an unmodifiable list of providers for additional data.Get attitude provider.getField()Field getter.getFrame()Get the frame in which the orbit is propagated.Get the propagator initial state.String[]Get all the names of all managed data.Get the multiplexer holding all step handlers.protected FieldAbsoluteDate<T> Get the start date.protected voidinitializeAdditionalData(FieldAbsoluteDate<T> target) Initialize the additional data providers at the start of propagation.protected voidInitialize propagation.booleanCheck if an additional data is managed.propagate(FieldAbsoluteDate<T> target) Propagate towards a target date.voidRemove an additional data provider.voidresetInitialState(FieldSpacecraftState<T> state) Reset the propagator initial state.voidsetAttitudeProvider(AttitudeProvider attitudeProvider) Set attitude provider.protected voidsetStartDate(FieldAbsoluteDate<T> startDate) Set a start date.protected voidstateChanged(FieldSpacecraftState<T> state) Notify about a state change.updateAdditionalData(FieldSpacecraftState<T> original) Update state by adding all additional data.protected FieldSpacecraftState<T> updateUnmanagedData(FieldSpacecraftState<T> original) Update state by adding unmanaged states.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.FieldPropagator
addEventDetector, clearEventsDetectors, clearStepHandlers, getEphemerisGenerator, getEventDetectors, getPosition, getPVCoordinates, getVelocity, propagate, setStepHandler, setStepHandler
-
Constructor Details
-
FieldAbstractPropagator
Build a new instance.- Parameters:
field- setting the field
-
-
Method Details
-
setStartDate
Set a start date.- Parameters:
startDate- start date
-
getStartDate
Get the start date.- Returns:
- start date
-
getAttitudeProvider
Get attitude provider.- Specified by:
getAttitudeProviderin interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Returns:
- attitude provider
-
setAttitudeProvider
Set attitude provider.- Specified by:
setAttitudeProviderin interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Parameters:
attitudeProvider- attitude provider
-
getField
Field getter.- Returns:
- field used
-
getInitialState
Get the propagator initial state.- Specified by:
getInitialStatein interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Returns:
- initial state
-
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:
getFramein interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Returns:
- frame in which the orbit is propagated
- See Also:
-
resetInitialState
Reset the propagator initial state.- Specified by:
resetInitialStatein interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Parameters:
state- new initial state to consider
-
getMultiplexer
Get the multiplexer holding all step handlers.- Specified by:
getMultiplexerin interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Returns:
- multiplexer holding all step handlers
-
addAdditionalDataProvider
Add a set of user-specified data to be computed along with the orbit propagation.- Specified by:
addAdditionalDataProviderin interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Parameters:
additionalDataProvider- provider for additional data
-
getAdditionalDataProviders
Get an unmodifiable list of providers for additional data.- Specified by:
getAdditionalDataProvidersin interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Returns:
- providers for the additional states
-
removeAdditionalDataProvider
Remove an additional data provider.- Parameters:
name- data name- Since:
- 13.1
-
updateUnmanagedData
Update state by adding unmanaged states.- Parameters:
original- original state- Returns:
- updated state, with unmanaged states included
- See Also:
-
updateAdditionalData
Update state by adding all additional data.- Parameters:
original- original state- Returns:
- updated state, with all additional data included
- See Also:
-
initializeAdditionalData
Initialize the additional data providers at the start of propagation.- Parameters:
target- date of propagation. Not equal toinitialState.getDate().- Since:
- 11.2
-
isAdditionalDataManaged
Check if an additional data is managed.Managed data are the ones for which the propagators know how to compute its evolution. They correspond to additional data for which an
additional data providerhas been registered by calling theaddAdditionalDataProvidermethod. If the propagator is anintegrator-based propagator, the states for which a set ofadditional derivatives providerhas been registered by calling theaddAdditionalDerivativesProvidermethod are also counted as managed additional states.Additional data that are present in the
initial statebut have no evolution method registered are not considered as managed data. These unmanaged additional data are not lost during propagation, though. Their value are piecewise constant between state resets that may change them if some event handlerresetStatemethod is called at an event occurrence and happens to change the unmanaged additional data.- Specified by:
isAdditionalDataManagedin interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Parameters:
name- name of the additional data- Returns:
- true if the additional data is managed
-
getManagedAdditionalData
Get all the names of all managed data.- Specified by:
getManagedAdditionalDatain interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Returns:
- names of all managed data
-
propagate
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:
propagatein interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Parameters:
target- target date towards which orbit state should be propagated- Returns:
- propagated state
-
initializePropagation
protected void initializePropagation()Initialize propagation.- Since:
- 10.1
-
stateChanged
Notify about a state change.- Parameters:
state- new state
-