fr.cnes.sirius.patrius.propagation.numerical.multi
Class MultiEphemerisModeHandler

java.lang.Object
  extended by fr.cnes.sirius.patrius.propagation.numerical.multi.MultiEphemerisModeHandler
All Implemented Interfaces:
MultiModeHandler, StepHandler

public class MultiEphemerisModeHandler
extends Object
implements MultiModeHandler, StepHandler

This interface is copied from EphemerisModeHandler and adapted to multi propagation.

This class stores sequentially generated orbital parameters of each states 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, a BoundedPropagator can be built for each spacecraft from the stored steps.

Since:
3.0
Version:
$Id: MultiEphemerisModeHandler.java 14175 2015-10-09 15:28:14Z chabaud $
Author:
maggioranic
Concurrency :
not thread-safe

Constructor Summary
MultiEphemerisModeHandler()
          Creates a new instance of MultiEphemerisModeHandler which must be filled by the propagator.
 
Method Summary
 BoundedPropagator getEphemeris(String satId)
          Get the generated ephemeris of the given spacecraft Id.
 void handleStep(StepInterpolator interpolator, boolean isLast)
          Handle the last accepted step
 void init(double t0, double[] y0, double t)
          Initialize step handler at the start of an ODE integration.
 void initialize(OrbitType orbit, PositionAngle angle, Map<String,AttitudeProvider> attitudeProvidersForces, Map<String,AttitudeProvider> attitudeProvidersEvents, MultiStateVectorInfo stateVectorInfo, boolean activateHandlers, AbsoluteDate reference, Map<String,Frame> frame, Map<String,Double> mu)
          Initialize the mode handler.
 void setReference(AbsoluteDate newReference)
          Define new reference date.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiEphemerisModeHandler

public MultiEphemerisModeHandler()
Creates a new instance of MultiEphemerisModeHandler which must be filled by the propagator.

Method Detail

initialize

public void initialize(OrbitType orbit,
                       PositionAngle angle,
                       Map<String,AttitudeProvider> attitudeProvidersForces,
                       Map<String,AttitudeProvider> attitudeProvidersEvents,
                       MultiStateVectorInfo stateVectorInfo,
                       boolean activateHandlers,
                       AbsoluteDate reference,
                       Map<String,Frame> frame,
                       Map<String,Double> mu)
Initialize the mode handler.

Specified by:
initialize in interface MultiModeHandler
Parameters:
orbit - orbit type
angle - position angle type
attitudeProvidersForces - attitude providers for forces computation for each state
attitudeProvidersEvents - attitude providers for events computation for each state
stateVectorInfo - the state vector informations
activateHandlers - if handlers shall be active
reference - reference date
frame - the map of reference frame for each state
mu - the map of central body attraction coefficient for each state

setReference

public void setReference(AbsoluteDate newReference)
Define new reference date.

To be called by NumericalPropagator only.

Specified by:
setReference in interface MultiModeHandler
Parameters:
newReference - new reference date

getEphemeris

public BoundedPropagator getEphemeris(String satId)
Get the generated ephemeris of the given spacecraft Id.

Parameters:
satId - the spacecraft Id
Returns:
a new instance of the generated ephemeris of the given spacecraft Id.

init

public void init(double t0,
                 double[] y0,
                 double t)
Initialize step handler at the start of an ODE integration.

This method is called once at the start of the integration. It may be used by the step handler to initialize some internal data if needed.

Specified by:
init in interface StepHandler
Parameters:
t0 - start value of the independent time variable
y0 - array containing the start value of the state vector
t - target time for the integration

handleStep

public void handleStep(StepInterpolator interpolator,
                       boolean isLast)
Handle the last accepted step

Specified by:
handleStep in interface StepHandler
Parameters:
interpolator - interpolator for the last accepted step. For efficiency purposes, the various integrators reuse the same object on each call, so if the instance wants to keep it across all calls (for example to provide at the end of the integration a continuous model valid throughout the integration range, as the ContinuousOutputModel class does), it should build a local copy using the clone method of the interpolator and store this copy. Keeping only a reference to the interpolator and reusing it will result in unpredictable behavior (potentially crashing the application).
isLast - true if the step is the last one


Copyright © 2016 CNES. All Rights Reserved.