fr.cnes.sirius.patrius.propagation.precomputed.multi
Class MultiIntegratedEphemeris

java.lang.Object
  extended by org.orekit.propagation.AbstractPropagator
      extended by fr.cnes.sirius.patrius.propagation.precomputed.multi.MultiIntegratedEphemeris
All Implemented Interfaces:
Serializable, BoundedPropagator, Propagator, PVCoordinatesProvider

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.

Since:
3.0
Version:
$Id: MultiIntegratedEphemeris.java 14584 2015-11-18 13:39:48Z bignon $
Author:
maggioranic
See Also:
Serialized Form
Concurrency :
immutable

Field Summary
 
Fields inherited from class org.orekit.propagation.AbstractPropagator
MASS
 
Fields inherited from interface org.orekit.propagation.Propagator
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
 
Constructor Summary
MultiIntegratedEphemeris(List<AbsoluteDate> startDatesIn, List<AbsoluteDate> minDatesIn, List<AbsoluteDate> maxDatesIn, OrbitType orbitTypeIn, PositionAngle angleTypeIn, AttitudeProvider attitudeProviderForces, AttitudeProvider attitudeProviderEvents, MultiStateVectorInfo stateInfos, List<ContinuousOutputModel> modelsIn, Frame referenceFrameIn, double muIn, String satIdIn)
          Creates a new instance of IntegratedEphemeris.
 
Method Summary
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.
 
Methods inherited from class org.orekit.propagation.AbstractPropagator
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
 
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.Propagator
addEventDetector, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getMode, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode
 

Constructor Detail

MultiIntegratedEphemeris

public MultiIntegratedEphemeris(List<AbsoluteDate> startDatesIn,
                                List<AbsoluteDate> minDatesIn,
                                List<AbsoluteDate> maxDatesIn,
                                OrbitType orbitTypeIn,
                                PositionAngle angleTypeIn,
                                AttitudeProvider attitudeProviderForces,
                                AttitudeProvider attitudeProviderEvents,
                                MultiStateVectorInfo stateInfos,
                                List<ContinuousOutputModel> modelsIn,
                                Frame referenceFrameIn,
                                double muIn,
                                String satIdIn)
                         throws OrekitException
Creates a new instance of IntegratedEphemeris.

Parameters:
startDatesIn - Start dates of the integration (can be minDate or maxDate)
minDatesIn - first dates of the range
maxDatesIn - last dates of the range
orbitTypeIn - orbit type
angleTypeIn - position angle type
attitudeProviderForces - attitude provider for forces computation
attitudeProviderEvents - attitude provider for events computation
stateInfos - state vector infos
modelsIn - underlying raw mathematical models
referenceFrameIn - reference referenceFrame
muIn - central body attraction coefficient
satIdIn - spacecraft id
Throws:
OrekitException - if several providers have the same name
Method Detail

basicPropagate

protected SpacecraftState basicPropagate(AbsoluteDate date)
                                  throws PropagationException
Propagate an orbit without any fancy features.

This method is similar in spirit to the AbstractPropagator.propagate(org.orekit.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.

Overrides:
basicPropagate in class AbstractPropagator
Parameters:
date - target date for propagation
Returns:
state at specified date
Throws:
PropagationException - if propagation cannot reach specified date

propagateOrbit

protected Orbit propagateOrbit(AbsoluteDate date)
                        throws PropagationException
Extrapolate an orbit up to a specific target date.

Specified by:
propagateOrbit in class AbstractPropagator
Parameters:
date - target date for the orbit
Returns:
extrapolated parameters
Throws:
PropagationException - if some parameters are out of bounds
See Also:
AbstractPropagator.propagateOrbit(org.orekit.time.AbsoluteDate)

getPVCoordinates

public PVCoordinates getPVCoordinates(AbsoluteDate date,
                                      Frame frame)
                               throws OrekitException
Get the PVCoordinates of the body in the selected frame.

Specified by:
getPVCoordinates in interface PVCoordinatesProvider
Overrides:
getPVCoordinates in class AbstractPropagator
Parameters:
date - current date
frame - the frame where to define the position
Returns:
position/velocity of the body (m and m/s)
Throws:
OrekitException - if position cannot be computed in given frame

getMinDate

public AbsoluteDate getMinDate()
Get the first date of the range.

Specified by:
getMinDate in interface BoundedPropagator
Returns:
the first date of the range
See Also:
BoundedPropagator.getMinDate()

getMaxDate

public AbsoluteDate getMaxDate()
Get the last date of the range.

Specified by:
getMaxDate in interface BoundedPropagator
Returns:
the last date of the range
See Also:
BoundedPropagator.getMaxDate()

resetInitialState

public void resetInitialState(SpacecraftState state)
                       throws PropagationException
Reset the propagator initial state.

Specified by:
resetInitialState in interface Propagator
Overrides:
resetInitialState in class AbstractPropagator
Parameters:
state - new initial state to consider
Throws:
PropagationException - if initial state cannot be reset

getInitialState

public SpacecraftState getInitialState()
                                throws OrekitException
Get the propagator initial state.

Specified by:
getInitialState in interface Propagator
Overrides:
getInitialState in class AbstractPropagator
Returns:
initial state
Throws:
OrekitException - if state cannot be retrieved


Copyright © 2016 CNES. All Rights Reserved.