Class FieldIntegratedEphemeris<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.propagation.FieldAbstractPropagator<T>
-
- org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator<T>
-
- org.orekit.propagation.integration.FieldIntegratedEphemeris<T>
-
- Type Parameters:
T
- type of the field elements
- All Implemented Interfaces:
FieldBoundedPropagator<T>
,FieldPropagator<T>
,FieldPVCoordinatesProvider<T>
,ParameterDriversProvider
public class FieldIntegratedEphemeris<T extends CalculusFieldElement<T>> extends FieldAbstractAnalyticalPropagator<T> implements FieldBoundedPropagator<T>
This class stores sequentially generated orbital parameters for later retrieval.Instances of this class are built automatically when the
getEphemerisGenerator
method has been called. They are created when propagation is over. Random access to any intermediate state of the orbit throughout the propagation range is possible afterwards through this object.A typical use case is for numerically integrated orbits, which can be used by algorithms that need to wander around according to their own algorithm without cumbersome tight links with the integrator.
As this class implements the
Propagator
interface, it can itself be used in batch mode to build another instance of the same type. This is however not recommended since it would be a waste of resources.Note that this class stores all intermediate states along with interpolation models, so it may be memory intensive.
- Author:
- Mathieu Roméro, Luc Maisonobe, Véronique Pommier-Maurussane
- See Also:
NumericalPropagator
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.FieldPropagator
DEFAULT_MASS
-
-
Constructor Summary
Constructors Constructor Description FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate, FieldAbsoluteDate<T> minDate, FieldAbsoluteDate<T> maxDate, FieldStateMapper<T> mapper, AttitudeProvider attitudeProvider, PropagationType type, FieldDenseOutputModel<T> model, FieldArrayDictionary<T> unmanaged, List<FieldAdditionalStateProvider<T>> providers, String[] equations, int[] dimensions)
Creates a new instance of IntegratedEphemeris.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected FieldSpacecraftState<T>
basicPropagate(FieldAbsoluteDate<T> date)
Propagate an orbit without any fancy features.Frame
getFrame()
Get the frame in which the orbit is propagated.FieldSpacecraftState<T>
getInitialState()
Get the propagator initial state.protected T
getMass(FieldAbsoluteDate<T> date)
Get the mass.FieldAbsoluteDate<T>
getMaxDate()
Get the last date of the range.FieldAbsoluteDate<T>
getMinDate()
Get the first date of the range.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.protected FieldOrbit<T>
propagateOrbit(FieldAbsoluteDate<T> date, T[] parameters)
Extrapolate an orbit up to a specific target date.void
resetInitialState(FieldSpacecraftState<T> state)
Reset the propagator initial state.protected void
resetIntermediateState(FieldSpacecraftState<T> state, boolean forward)
Reset an intermediate state.protected FieldSpacecraftState<T>
updateAdditionalStates(FieldSpacecraftState<T> original)
Update state by adding all additional states.-
Methods inherited from class org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator
acceptStep, addEventDetector, clearEventsDetectors, getEphemerisGenerator, getEventDetectors, getPvProvider, propagate
-
Methods inherited from class org.orekit.propagation.FieldAbstractPropagator
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getField, getManagedAdditionalStates, getMultiplexer, getStartDate, initializeAdditionalStates, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setStartDate, stateChanged, updateUnmanagedStates
-
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.FieldPropagator
addAdditionalStateProvider, addEventDetector, clearEventsDetectors, clearStepHandlers, getAdditionalStateProviders, getAttitudeProvider, getEphemerisGenerator, getEventDetectors, getManagedAdditionalStates, getMultiplexer, getPosition, getPVCoordinates, isAdditionalStateManaged, propagate, propagate, setAttitudeProvider, setStepHandler, setStepHandler
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
FieldIntegratedEphemeris
public FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate, FieldAbsoluteDate<T> minDate, FieldAbsoluteDate<T> maxDate, FieldStateMapper<T> mapper, AttitudeProvider attitudeProvider, PropagationType type, FieldDenseOutputModel<T> model, FieldArrayDictionary<T> unmanaged, List<FieldAdditionalStateProvider<T>> providers, String[] equations, int[] dimensions)
Creates a new instance of IntegratedEphemeris.- Parameters:
startDate
- Start date of the integration (can be minDate or maxDate)minDate
- first date of the rangemaxDate
- last date of the rangemapper
- mapper between raw double components and spacecraft stateattitudeProvider
- attitude providertype
- type of orbit to output (mean or osculating)model
- underlying raw mathematical modelunmanaged
- unmanaged additional states that must be simply copiedproviders
- generators for pre-integrated statesequations
- names of additional equationsdimensions
- dimensions of additional equations- Since:
- 13.0
-
-
Method Detail
-
basicPropagate
protected FieldSpacecraftState<T> basicPropagate(FieldAbsoluteDate<T> date)
Propagate an orbit without any fancy features.This method is similar in spirit to the
FieldAbstractAnalyticalPropagator.propagate(org.orekit.time.FieldAbsoluteDate<T>, org.orekit.time.FieldAbsoluteDate<T>)
method, except that it does not call any handler during propagation, nor any discrete events, not additional states. It always stop exactly at the specified date.- Overrides:
basicPropagate
in classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
- Parameters:
date
- target date for propagation- Returns:
- state at specified date
-
propagateOrbit
protected FieldOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date, T[] parameters)
Extrapolate an orbit up to a specific target date.- Specified by:
propagateOrbit
in classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
- Parameters:
date
- target date for the orbitparameters
- model parameters- Returns:
- extrapolated parameters
-
getMass
protected T getMass(FieldAbsoluteDate<T> date)
Get the mass.- Specified by:
getMass
in classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
- Parameters:
date
- target date for the orbit- Returns:
- mass mass
-
getMinDate
public FieldAbsoluteDate<T> getMinDate()
Get the first date of the range.- Specified by:
getMinDate
in interfaceFieldBoundedPropagator<T extends CalculusFieldElement<T>>
- Returns:
- the first date of the range
-
getMaxDate
public FieldAbsoluteDate<T> getMaxDate()
Get the last date of the range.- Specified by:
getMaxDate
in interfaceFieldBoundedPropagator<T extends CalculusFieldElement<T>>
- Returns:
- the last date of the range
-
getFrame
public Frame getFrame()
Description copied from class:FieldAbstractPropagator
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 interfaceFieldPropagator<T extends CalculusFieldElement<T>>
- Overrides:
getFrame
in classFieldAbstractPropagator<T extends CalculusFieldElement<T>>
- Returns:
- frame in which the orbit is propagated
- See Also:
FieldPropagator.resetInitialState(FieldSpacecraftState)
-
resetInitialState
public void resetInitialState(FieldSpacecraftState<T> state)
Reset the propagator initial state.- Specified by:
resetInitialState
in interfaceFieldPropagator<T extends CalculusFieldElement<T>>
- Overrides:
resetInitialState
in classFieldAbstractPropagator<T extends CalculusFieldElement<T>>
- Parameters:
state
- new initial state to consider
-
resetIntermediateState
protected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward)
Reset an intermediate state.- Specified by:
resetIntermediateState
in classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
- Parameters:
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for propagations after itself
-
getInitialState
public FieldSpacecraftState<T> getInitialState()
Get the propagator initial state.- Specified by:
getInitialState
in interfaceFieldPropagator<T extends CalculusFieldElement<T>>
- Overrides:
getInitialState
in classFieldAbstractPropagator<T extends CalculusFieldElement<T>>
- Returns:
- initial state
-
updateAdditionalStates
protected FieldSpacecraftState<T> updateAdditionalStates(FieldSpacecraftState<T> original)
Update state by adding all additional states.- Overrides:
updateAdditionalStates
in classFieldAbstractPropagator<T extends CalculusFieldElement<T>>
- Parameters:
original
- original state- Returns:
- updated state, with all additional states included
- See Also:
FieldAbstractPropagator.addAdditionalStateProvider(FieldAdditionalStateProvider)
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDrivers
in interfaceParameterDriversProvider
- Returns:
- drivers for parameters
-
-