Class FieldIntegratedEphemeris<T extends org.hipparchus.RealFieldElement<T>>
- java.lang.Object
-
- org.orekit.propagation.FieldAbstractPropagator<T>
-
- org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator<T>
-
- org.orekit.propagation.integration.FieldIntegratedEphemeris<T>
-
- All Implemented Interfaces:
FieldBoundedPropagator<T>
,FieldPropagator<T>
,FieldPVCoordinatesProvider<T>
public class FieldIntegratedEphemeris<T extends org.hipparchus.RealFieldElement<T>> extends FieldAbstractAnalyticalPropagator<T> implements FieldBoundedPropagator<T>
This class stores sequentially generated orbital parameters for later retrieval.Instances of this class are built and then must be fed with the results provided by
Propagator
objects configured inephemeris generation mode
. Once propagation is o, random access to any intermediate state of the orbit throughout the propagation range is possible.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.
Another use case is persistence, as this class is one of the few propagators to be serializable.
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_LAW, DEFAULT_MASS, EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
-
-
Constructor Summary
Constructors Constructor Description FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate, FieldAbsoluteDate<T> minDate, FieldAbsoluteDate<T> maxDate, FieldStateMapper<T> mapper, boolean meanFieldOrbit, org.hipparchus.ode.FieldDenseOutputModel<T> model, Map<String,T[]> unmanaged, List<FieldAdditionalStateProvider<T>> providers, String[] equations)
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.TimeStampedFieldPVCoordinates<T>
getPVCoordinates(FieldAbsoluteDate<T> date, Frame frame)
Get theFieldPVCoordinates
of the body in the selected frame.protected FieldOrbit<T>
propagateOrbit(FieldAbsoluteDate<T> date)
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.-
Methods inherited from class org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator
acceptStep, addEventDetector, clearEventsDetectors, getEventsDetectors, getGeneratedEphemeris, getPvProvider, propagate
-
Methods inherited from class org.orekit.propagation.FieldAbstractPropagator
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getField, getFixedStepSize, getManagedAdditionalStates, getMode, getStartDate, getStepHandler, isAdditionalStateManaged, propagate, setAttitudeProvider, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDate, updateAdditionalStates
-
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, getAdditionalStateProviders, getAttitudeProvider, getEventsDetectors, getGeneratedEphemeris, getManagedAdditionalStates, getMode, isAdditionalStateManaged, propagate, propagate, setAttitudeProvider, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode
-
-
-
-
Constructor Detail
-
FieldIntegratedEphemeris
public FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate, FieldAbsoluteDate<T> minDate, FieldAbsoluteDate<T> maxDate, FieldStateMapper<T> mapper, boolean meanFieldOrbit, org.hipparchus.ode.FieldDenseOutputModel<T> model, Map<String,T[]> unmanaged, List<FieldAdditionalStateProvider<T>> providers, String[] equations)
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 statemeanFieldOrbit
- output only the mean orbitmodel
- underlying raw mathematical modelunmanaged
- unmanaged additional states that must be simply copiedproviders
- providers for pre-integrated statesequations
- names of additional equations
-
-
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 org.hipparchus.RealFieldElement<T>>
- Parameters:
date
- target date for propagation- Returns:
- state at specified date
-
propagateOrbit
protected FieldOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date)
Extrapolate an orbit up to a specific target date.- Specified by:
propagateOrbit
in classFieldAbstractAnalyticalPropagator<T extends org.hipparchus.RealFieldElement<T>>
- Parameters:
date
- target date for the orbit- Returns:
- extrapolated parameters
-
getMass
protected T getMass(FieldAbsoluteDate<T> date)
Get the mass.- Specified by:
getMass
in classFieldAbstractAnalyticalPropagator<T extends org.hipparchus.RealFieldElement<T>>
- Parameters:
date
- target date for the orbit- Returns:
- mass mass
-
getPVCoordinates
public TimeStampedFieldPVCoordinates<T> getPVCoordinates(FieldAbsoluteDate<T> date, Frame frame)
Get theFieldPVCoordinates
of the body in the selected frame.- Specified by:
getPVCoordinates
in interfaceFieldPVCoordinatesProvider<T extends org.hipparchus.RealFieldElement<T>>
- Overrides:
getPVCoordinates
in classFieldAbstractPropagator<T extends org.hipparchus.RealFieldElement<T>>
- Parameters:
date
- current dateframe
- the frame where to define the position- Returns:
- time-stamped position/velocity of the body (m and m/s)
-
getMinDate
public FieldAbsoluteDate<T> getMinDate()
Get the first date of the range.- Specified by:
getMinDate
in interfaceFieldBoundedPropagator<T extends org.hipparchus.RealFieldElement<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 org.hipparchus.RealFieldElement<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 org.hipparchus.RealFieldElement<T>>
- Overrides:
getFrame
in classFieldAbstractPropagator<T extends org.hipparchus.RealFieldElement<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 org.hipparchus.RealFieldElement<T>>
- Overrides:
resetInitialState
in classFieldAbstractPropagator<T extends org.hipparchus.RealFieldElement<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 org.hipparchus.RealFieldElement<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 org.hipparchus.RealFieldElement<T>>
- Overrides:
getInitialState
in classFieldAbstractPropagator<T extends org.hipparchus.RealFieldElement<T>>
- Returns:
- initial state
-
-