public class IntegratedEphemeris extends AbstractPropagator implements BoundedPropagator
Instances of this class are built and then must be fed with the results provided by
Propagator objects configured in
ephemeris 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 for persistence, as this class is 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.
NumericalPropagator,
Serialized FormMASSEPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE| Constructor and Description |
|---|
IntegratedEphemeris(List<AbsoluteDate> startDatesIn,
List<AbsoluteDate> minDatesIn,
List<AbsoluteDate> maxDatesIn,
OrbitType orbitTypeIn,
PositionAngle angleTypeIn,
AttitudeProvider attitudeForcesProvider,
AttitudeProvider attitudeEventsProvider,
Map<String,AdditionalStateInfo> additionalStateInfos,
List<ContinuousOutputModel> modelsIn,
Frame referenceFrameIn,
double muIn)
Creates a new instance of IntegratedEphemeris.
|
IntegratedEphemeris(List<AbsoluteDate> startDatesIn,
List<AbsoluteDate> minDatesIn,
List<AbsoluteDate> maxDatesIn,
OrbitType orbitTypeIn,
PositionAngle angleTypeIn,
AttitudeProvider attitudeProvider,
Map<String,AdditionalStateInfo> additionalStateInfos,
List<ContinuousOutputModel> modelsIn,
Frame referenceFrameIn,
double muIn)
Creates a new instance of IntegratedEphemeris.
|
| Modifier and Type | Method and Description |
|---|---|
protected SpacecraftState |
basicPropagate(AbsoluteDate date)
Propagate an orbit without any fancy features.
|
SpacecraftState |
getInitialState()
Get the propagator initial state.
|
AbsoluteDate |
getMaxDate()
Get the last date of the range.
|
AbsoluteDate |
getMinDate()
Get the first date of the range.
|
PVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frame)
Default implementation for PVCoordinatesProvider feature using the
SpacecraftState
object's orbit. |
SpacecraftState |
getSpacecraftState(AbsoluteDate date)
Get the
SpacecraftState at provided date. |
void |
manageStateFrame()
In this class, nothing as to be done in the frame managing before propagation
because propagation will be performed in Frame referenceFrame
It just throws an OrekitException if this frame is non inertial or pseudo-inertial.
|
protected Orbit |
propagateOrbit(AbsoluteDate date)
Extrapolate an orbit up to a specific target date.
|
void |
resetInitialState(SpacecraftState state)
Reset the propagator initial state.
|
acceptStep, addAdditionalStateProvider, addAdditionalStateProvider, addEventDetector, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getMode, getPvProvider, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsetOrbitFrameaddEventDetector, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getMode, getNativeFrame, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setSlaveModepublic IntegratedEphemeris(List<AbsoluteDate> startDatesIn, List<AbsoluteDate> minDatesIn, List<AbsoluteDate> maxDatesIn, OrbitType orbitTypeIn, PositionAngle angleTypeIn, AttitudeProvider attitudeProvider, Map<String,AdditionalStateInfo> additionalStateInfos, List<ContinuousOutputModel> modelsIn, Frame referenceFrameIn, double muIn) throws PatriusException
startDatesIn - list of start dates of the integration (can be minDate or maxDate)minDatesIn - list of first dates of the rangesmaxDatesIn - list of last dates of the rangesorbitTypeIn - orbit typeangleTypeIn - position angle typeattitudeProvider - attitude provider in case of both forces and events computationadditionalStateInfos - additional states informationsmodelsIn - list of underlying raw mathematical modelsreferenceFrameIn - reference referenceFramemuIn - central body attraction coefficientPatriusException - if several providers have the same namepublic IntegratedEphemeris(List<AbsoluteDate> startDatesIn, List<AbsoluteDate> minDatesIn, List<AbsoluteDate> maxDatesIn, OrbitType orbitTypeIn, PositionAngle angleTypeIn, AttitudeProvider attitudeForcesProvider, AttitudeProvider attitudeEventsProvider, Map<String,AdditionalStateInfo> additionalStateInfos, List<ContinuousOutputModel> modelsIn, Frame referenceFrameIn, double muIn) throws PatriusException
startDatesIn - list of start dates of the integration (can be minDate or maxDate)minDatesIn - list of first dates of the rangesmaxDatesIn - list of last dates of the rangesorbitTypeIn - orbit typeangleTypeIn - position angle typeattitudeForcesProvider - attitude provider for forces computationattitudeEventsProvider - attitude provider for events computationadditionalStateInfos - additional states informationsmodelsIn - list of underlying raw mathematical modelsreferenceFrameIn - reference referenceFramemuIn - central body attraction coefficientPatriusException - if several providers have the same nameprotected SpacecraftState basicPropagate(AbsoluteDate date) throws PropagationException
This method is similar in spirit to the AbstractPropagator.propagate(fr.cnes.sirius.patrius.time.AbsoluteDate) method, except that it does not call
any handler during propagation, nor any discrete events. It always stop exactly at the specified date.
basicPropagate in class AbstractPropagatordate - target date for propagationPropagationException - if propagation cannot reach specified datepublic void manageStateFrame()
throws PatriusException
manageStateFrame in class AbstractPropagatorPatriusException - if the frame is non inertial or pseudo-inertialprotected Orbit propagateOrbit(AbsoluteDate date) throws PropagationException
propagateOrbit in class AbstractPropagatordate - target date for the orbitPropagationException - if some parameters are out of boundspublic PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws PatriusException
SpacecraftState
object's orbit.
Get the PVCoordinates of the body in the selected frame.
getPVCoordinates in interface PVCoordinatesProvidergetPVCoordinates in interface SpacecraftStateProvidergetPVCoordinates in class AbstractPropagatordate - current dateframe - the frame where to define the positionPatriusException - if position cannot be computed in given framepublic AbsoluteDate getMinDate()
getMinDate in interface BoundedPropagatorpublic AbsoluteDate getMaxDate()
getMaxDate in interface BoundedPropagatorpublic void resetInitialState(SpacecraftState state) throws PropagationException
resetInitialState in interface PropagatorresetInitialState in class AbstractPropagatorstate - new initial state to considerPropagationException - if initial state cannot be resetpublic SpacecraftState getInitialState() throws PatriusException
getInitialState in interface PropagatorgetInitialState in class AbstractPropagatorPatriusException - if state cannot be retrievedpublic SpacecraftState getSpacecraftState(AbsoluteDate date) throws PropagationException
SpacecraftState at provided date.getSpacecraftState in interface SpacecraftStateProvidergetSpacecraftState in class AbstractPropagatordate - target datePropagationException - if state cannot be computedCopyright © 2024 CNES. All rights reserved.