public class MultiIntegratedEphemeris extends AbstractPropagator implements BoundedPropagator
This interface is copied from IntegratedEphemeris and adapted to multi propagation.
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
MultiPropagator
objects configured in
ephemeris generation mode
. Once propagation is over, 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.
MASS
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Constructor and Description |
---|
MultiIntegratedEphemeris(List<AbsoluteDate> startDatesIn,
List<AbsoluteDate> minDatesIn,
List<AbsoluteDate> maxDatesIn,
OrbitType orbitTypeIn,
PositionAngle angleTypeIn,
MultiAttitudeProvider multiAttitudeProviderForcesIn,
MultiAttitudeProvider multiAttitudeProviderEventsIn,
MultiStateVectorInfo stateInfos,
List<ContinuousOutputModel> modelsIn,
Frame referenceFrameIn,
String satIdIn)
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)
Get the
PVCoordinates of the body in the selected frame. |
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, manageStateFrame, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addEventDetector, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getMode, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode
public MultiIntegratedEphemeris(List<AbsoluteDate> startDatesIn, List<AbsoluteDate> minDatesIn, List<AbsoluteDate> maxDatesIn, OrbitType orbitTypeIn, PositionAngle angleTypeIn, MultiAttitudeProvider multiAttitudeProviderForcesIn, MultiAttitudeProvider multiAttitudeProviderEventsIn, MultiStateVectorInfo stateInfos, List<ContinuousOutputModel> modelsIn, Frame referenceFrameIn, String satIdIn) throws PatriusException
startDatesIn
- Start dates of the integration (can be minDate or maxDate)minDatesIn
- first dates of the rangemaxDatesIn
- last dates of the rangeorbitTypeIn
- orbit typeangleTypeIn
- position angle typemultiAttitudeProviderForcesIn
- attitude provider for forces computationmultiAttitudeProviderEventsIn
- attitude provider for events computationstateInfos
- state vector infosmodelsIn
- underlying raw mathematical modelsreferenceFrameIn
- reference referenceFramesatIdIn
- spacecraft idPatriusException
- 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 AbstractPropagator
date
- target date for propagationPropagationException
- if propagation cannot reach specified dateprotected Orbit propagateOrbit(AbsoluteDate date) throws PropagationException
propagateOrbit
in class AbstractPropagator
date
- target date for the orbitPropagationException
- if some parameters are out of boundspublic PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws PatriusException
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
getPVCoordinates
in class AbstractPropagator
date
- current dateframe
- the frame where to define the positionPatriusException
- if position cannot be computed in given framepublic AbsoluteDate getMinDate()
getMinDate
in interface BoundedPropagator
BoundedPropagator.getMinDate()
public AbsoluteDate getMaxDate()
getMaxDate
in interface BoundedPropagator
BoundedPropagator.getMaxDate()
public void resetInitialState(SpacecraftState state) throws PropagationException
resetInitialState
in interface Propagator
resetInitialState
in class AbstractPropagator
state
- new initial state to considerPropagationException
- if initial state cannot be resetpublic SpacecraftState getInitialState() throws PatriusException
getInitialState
in interface Propagator
getInitialState
in class AbstractPropagator
PatriusException
- if state cannot be retrievedCopyright © 2021 CNES. All rights reserved.