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

java.lang.Object
  extended by fr.cnes.sirius.patrius.propagation.numerical.multi.MultiNumericalPropagator
All Implemented Interfaces:
MultiPropagator

public class MultiNumericalPropagator
extends Object
implements MultiPropagator

This class is copied from NumericalPropagator and adapted to multi propagation.

This class propagates N SpacecraftState using numerical integration. Each state is identified with an ID of type String.

Multi spacecraft numerical propagation requires steps to set up the propagator to be used properly.

At least one satellite should be added to the propagator using addInitialState(SpacecraftState, String). Then, the following configuration parameters can be set for each state:

The following general parameters can also be set :

From these configuration parameters, only the initial state is mandatory. The default propagation settings are in equinoctial parameters with true longitude argument. If the central attraction coefficient is not explicitly specified, the one used to define the initial orbit will be used.

The underlying numerical integrator set up in the constructor may also have its own configuration parameters. Typical configuration parameters for adaptive stepsize integrators are the min, max and perhaps start step size as well as the absolute and/or relative errors thresholds.

A state that is seen by the integrator is a simple six elements double array. The six first elements are either:

The following code snippet shows a typical setting for Low Earth Orbit propagation in equinoctial parameters and true longitude argument:

 final double dP = 0.001;
 final double minStep = 0.001;
 final double maxStep = 500;
 final double initStep = 60;
 AdaptiveStepsizeIntegrator integrator = new DormandPrince853Integrator(minStep, maxStep, AbsTolerance, RelTolerance);
 integrator.setInitialStepSize(initStep);
 propagator = new MultiNumericalPropagator(integrator);
 

The same instance cannot be used simultaneously by different threads, the class is not thread-safe.

Since:
3.0
Version:
$Id: MultiNumericalPropagator.java 17585 2017-05-10 13:27:59Z bignon $
Author:
maggioranic
See Also:
SpacecraftState, ForceModel, MultiOrekitStepHandler, MultiOrekitFixedStepHandler, MultiIntegratedEphemeris, TimeDerivativesEquations
Concurrency :
not thread-safe
Concurrency comment :
attributes are mutable and related to propagation.

Field Summary
 
Fields inherited from interface fr.cnes.sirius.patrius.propagation.MultiPropagator
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
 
Constructor Summary
MultiNumericalPropagator(FirstOrderIntegrator integrator)
          Create a new instance of MultiNumericalPropagator.
 
Method Summary
 void addAdditionalEquations(AdditionalEquations addEqu, String satId)
          Add a set of user-specified equations to be integrated along with the orbit propagation.
 void addAttitudeEquation(AttitudeEquation addEqu, String satId)
          Add a set of user-specified attitude equations to be integrated along with the orbit propagation.
 void addEventDetector(EventDetector detector, String satId)
          Add an event detector to a specific spacecraft.
 void addEventDetector(MultiEventDetector detector)
          Add a multi spacecraft event detector.
protected  void addEventHandlers(boolean activateHandlers, Map<String,AttitudeProvider> localAttProvForces, Map<String,AttitudeProvider> localAttProvEvents)
          Add event handlers to integrator.
 void addForceModel(ForceModel model, String satId)
          Add a force model to the global perturbation model of a specific spacecraft.
 void addInitialState(SpacecraftState initialState, String satId)
          Add a new spacecraft state to be propagated.
 void clearEventsDetectors()
          Remove all events detectors.
 AttitudeProvider getAttitudeProvider(String satId)
           Get the default attitude provider.
 AttitudeProvider getAttitudeProviderEvents(String satId)
           Get the attitude provider for events computation.
 AttitudeProvider getAttitudeProviderForces(String satId)
           Get the attitude provider for forces computation.
 int getCalls()
          Get the number of calls to the differential equations computation method.
 Collection<MultiEventDetector> getEventsDetectors()
          Get all the events detectors that have been added.
 List<ForceModel> getForceModels(String satId)
          Get perturbing force models list.
 Frame getFrame(String satId)
          Get the frame in which the orbit is propagated.
 BoundedPropagator getGeneratedEphemeris(String satId)
          Get the ephemeris generated during propagation for a defined spacecraft.
 Map<String,SpacecraftState> getInitialStates()
          Get the propagator initial states.
 int getMode()
          Get the current operating mode of the propagator.
 double getMu(String satId)
          Get the central attraction coefficient μ.
 NewtonianAttraction getNewtonianAttractionForceModel(String satId)
          Get the Newtonian attraction from the central body force model.
 OrbitType getOrbitType()
          Get propagation parameter type.
 PositionAngle getPositionAngleType()
          Get propagation parameter type.
 PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame, String satId)
          Get the PVCoordinates of the body in the selected frame.
 Map<String,SpacecraftState> propagate(AbsoluteDate target)
          Propagate towards a target date.
 Map<String,SpacecraftState> propagate(AbsoluteDate start, AbsoluteDate target)
          Propagate from a start date towards a target date.
 void removeForceModels()
          Remove all perturbing force models from the global perturbation model.
 void setAdditionalStateTolerance(String name, double[] absTol, double[] relTol, String satId)
          Add additional state tolerances.
 void setAttitudeProvider(AttitudeProvider attitudeProvider, String satId)
           Set attitude provider for defined spacecraft.
 void setAttitudeProviderEvents(AttitudeProvider attitudeProviderEvents, String satId)
           Set attitude provider for events computation.
 void setAttitudeProviderForces(AttitudeProvider attitudeProviderForces, String satId)
           Set attitude provider for forces computation.
 void setEphemerisMode()
          Set the propagator to ephemeris generation mode.
 void setIntegrator(FirstOrderIntegrator integrator)
           Set the integrator.
 void setMassProviderEquation(MassProvider massProvider, String satId)
          Add additional equations associated with the mass provider.
 void setMasterMode(double h, MultiOrekitFixedStepHandler handler)
          Set the propagator to master mode with fixed steps.
 void setMasterMode(MultiOrekitStepHandler handler)
          Set the propagator to master mode with variable steps.
 void setMu(double mu, String satId)
          Set the central attraction coefficient μ.
The Newtonian attraction from the central body force model will be updated with the new coefficient.
 void setOrbitFrame(String satId, Frame frame)
          Set a frame for propagation The initial state must have first been added using the addInitialState(SpacecraftState, String) method before defining the associated integration frame.
 void setOrbitTolerance(double[] absoluteTolerance, double[] relativeTolerance, String satId)
          Set the orbit tolerance of a defined state.
 void setOrbitType(OrbitType orbitTypeIn)
          Set propagation orbit type.
 void setPositionAngleType(PositionAngle positionAngleType)
          Set position angle type.
 void setSlaveMode()
          Set the propagator to slave mode.
protected  void setUpEventDetector(EventDetector osf, Map<String,AttitudeProvider> localAttProvForces, Map<String,AttitudeProvider> localAttProvEvents, String satId)
          Wrap an Orekit event detector and register it to the integrator.
protected  void setUpEventDetector(MultiEventDetector osf, Map<String,AttitudeProvider> localAttProvForces, Map<String,AttitudeProvider> localAttProvEvents)
          Wrap an Orekit multi-sat event detector and register it to the integrator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiNumericalPropagator

public MultiNumericalPropagator(FirstOrderIntegrator integrator)
Create a new instance of MultiNumericalPropagator. After creation, the instance is empty, i.e. there are no perturbing forces at all. This means that if addForceModel is not called after creation, the integrated orbit will follow a keplerian evolution only. The defaults are OrbitType.EQUINOCTIAL for propagation orbit type and PositionAngle.TRUE for position angle type.

Parameters:
integrator - numerical integrator to use for propagation.
Method Detail

setIntegrator

public void setIntegrator(FirstOrderIntegrator integrator)

Set the integrator.

The orbit tolerances (vector or scalar tolerances) given to the integrator are used as default tolerances. The method {setOrbitTolerance(double[], double[], String) should be called to define the expected orbit tolerance.

Parameters:
integrator - numerical integrator to use for propagation.

setOrbitTolerance

public void setOrbitTolerance(double[] absoluteTolerance,
                              double[] relativeTolerance,
                              String satId)
                       throws OrekitException
Set the orbit tolerance of a defined state.

Parameters:
absoluteTolerance - the orbit absolute tolerance of the specified spacecraft.
relativeTolerance - the orbit relative tolerance of the specified spacecraft.
satId - the spacecraft ID.
Throws:
OrekitException - The length of the input orbit tolerance is different from 6

setMu

public void setMu(double mu,
                  String satId)
Set the central attraction coefficient μ.
The Newtonian attraction from the central body force model will be updated with the new coefficient.

Parameters:
mu - central attraction coefficient (m3/s2)
satId - the spacecraft ID.
See Also:
getMu(String), addForceModel(ForceModel, String)

getMu

public double getMu(String satId)
Get the central attraction coefficient μ.

Parameters:
satId - the spacecraft ID.
Returns:
mu central attraction coefficient (m3/s2)
See Also:
setMu(double, String)

getAttitudeProvider

public AttitudeProvider getAttitudeProvider(String satId)
Description copied from interface: MultiPropagator

Get the default attitude provider.

The unique attitude provider given by default is returned. If null, the attitude provider for forces computation, and then the attitude provider for events computation is returned.

Specified by:
getAttitudeProvider in interface MultiPropagator
Parameters:
satId - the spacecraft ID
Returns:
attitude provider for forces computation (by default)

getAttitudeProviderForces

public AttitudeProvider getAttitudeProviderForces(String satId)
Description copied from interface: MultiPropagator

Get the attitude provider for forces computation.

Specified by:
getAttitudeProviderForces in interface MultiPropagator
Parameters:
satId - the spacecraft ID
Returns:
attitude provider for forces computation, return null if not defined.

getAttitudeProviderEvents

public AttitudeProvider getAttitudeProviderEvents(String satId)
Description copied from interface: MultiPropagator

Get the attitude provider for events computation.

Specified by:
getAttitudeProviderEvents in interface MultiPropagator
Parameters:
satId - the spacecraft ID
Returns:
attitude provider for events computation, return null if not defined.

setAttitudeProvider

public void setAttitudeProvider(AttitudeProvider attitudeProvider,
                                String satId)
Description copied from interface: MultiPropagator

Set attitude provider for defined spacecraft.

A default attitude provider is available in ConstantAttitudeLaw.

The spacecraft defined by the input ID should already be added using MultiPropagator.addInitialState(SpacecraftState, String).

Specified by:
setAttitudeProvider in interface MultiPropagator
Parameters:
attitudeProvider - attitude provider
satId - the spacecraft ID

setAttitudeProviderForces

public void setAttitudeProviderForces(AttitudeProvider attitudeProviderForces,
                                      String satId)
Description copied from interface: MultiPropagator

Set attitude provider for forces computation.

A default attitude provider is available in ConstantAttitudeLaw.

The spacecraft defined by the input ID should already be added using MultiPropagator.addInitialState(SpacecraftState, String).

Specified by:
setAttitudeProviderForces in interface MultiPropagator
Parameters:
attitudeProviderForces - attitude provider for forces computation
satId - the spacecraft ID

setAttitudeProviderEvents

public void setAttitudeProviderEvents(AttitudeProvider attitudeProviderEvents,
                                      String satId)
Description copied from interface: MultiPropagator

Set attitude provider for events computation.

A default attitude provider is available in ConstantAttitudeLaw.

The spacecraft defined by the input ID should already be added using MultiPropagator.addInitialState(SpacecraftState, String).

Specified by:
setAttitudeProviderEvents in interface MultiPropagator
Parameters:
attitudeProviderEvents - attitude provider for events computation
satId - the spacecraft ID

setOrbitFrame

public void setOrbitFrame(String satId,
                          Frame frame)
                   throws OrekitException
Set a frame for propagation The initial state must have first been added using the addInitialState(SpacecraftState, String) method before defining the associated integration frame.

Parameters:
satId - the spacecraft ID
frame - the frame to use. This frame must be inertial or pseudo-inertial, otherwise an exception is risen.
Throws:
OrekitException - if frame is not inertial or apseudo-inertial frame

addEventDetector

public void addEventDetector(MultiEventDetector detector)
Description copied from interface: MultiPropagator
Add a multi spacecraft event detector.

Specified by:
addEventDetector in interface MultiPropagator
Parameters:
detector - event detector to add
See Also:
MultiPropagator.clearEventsDetectors(), MultiPropagator.getEventsDetectors()

addEventDetector

public void addEventDetector(EventDetector detector,
                             String satId)
Description copied from interface: MultiPropagator
Add an event detector to a specific spacecraft. The spacecraft defined by the input ID should already be added using MultiPropagator.addInitialState(SpacecraftState, String).

Specified by:
addEventDetector in interface MultiPropagator
Parameters:
detector - event detector to add
satId - the spacecraft ID
See Also:
MultiPropagator.clearEventsDetectors(), MultiPropagator.getEventsDetectors()

getEventsDetectors

public Collection<MultiEventDetector> getEventsDetectors()
Description copied from interface: MultiPropagator
Get all the events detectors that have been added.

Specified by:
getEventsDetectors in interface MultiPropagator
Returns:
an unmodifiable collection of the added detectors
See Also:
MultiPropagator.addEventDetector(MultiEventDetector), MultiPropagator.addEventDetector(EventDetector, String), MultiPropagator.clearEventsDetectors()

clearEventsDetectors

public void clearEventsDetectors()
Description copied from interface: MultiPropagator
Remove all events detectors.

Specified by:
clearEventsDetectors in interface MultiPropagator
See Also:
MultiPropagator.addEventDetector(MultiEventDetector), MultiPropagator.addEventDetector(EventDetector, String), MultiPropagator.getEventsDetectors()

addForceModel

public void addForceModel(ForceModel model,
                          String satId)
Add a force model to the global perturbation model of a specific spacecraft.

If the force is an attraction model, the central attraction coefficient of this force will be used during the propagation.

If the force is a Newtonian attraction model, the central attraction coefficient will be updated but the force will not be added to the model (already present).

If this method is not called at all, the integrated orbit will follow a keplerian evolution only (using the central attraction coefficient of the orbit).

Parameters:
model - perturbing ForceModel to add
satId - the spacecraft ID.
See Also:
removeForceModels(), setMu(double, String)

removeForceModels

public void removeForceModels()
Remove all perturbing force models from the global perturbation model.

Once all perturbing forces have been removed (and as long as no new force model is added), the integrated orbit will follow a keplerian evolution only.

See Also:
addForceModel(ForceModel, String)

getForceModels

public List<ForceModel> getForceModels(String satId)
Get perturbing force models list.

Parameters:
satId - the spacecraft ID.
Returns:
list of perturbing force models
See Also:
addForceModel(ForceModel, String), getNewtonianAttractionForceModel(String)

getNewtonianAttractionForceModel

public NewtonianAttraction getNewtonianAttractionForceModel(String satId)
Get the Newtonian attraction from the central body force model.

Parameters:
satId - the spacecraft ID.
Returns:
Newtonian attraction force model
See Also:
setMu(double, String), getForceModels(String)

getMode

public int getMode()
Description copied from interface: MultiPropagator
Get the current operating mode of the propagator.

Specified by:
getMode in interface MultiPropagator
Returns:
one of MultiPropagator.SLAVE_MODE, MultiPropagator.MASTER_MODE, MultiPropagator.EPHEMERIS_GENERATION_MODE
See Also:
MultiPropagator.setSlaveMode(), MultiPropagator.setMasterMode(double, MultiOrekitFixedStepHandler), MultiPropagator.setMasterMode(MultiOrekitStepHandler), MultiPropagator.setEphemerisMode()

getFrame

public Frame getFrame(String satId)
Description copied from interface: MultiPropagator
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.

The spacecraft defined by the input ID should already be added using MultiPropagator.addInitialState(SpacecraftState, String).

Specified by:
getFrame in interface MultiPropagator
Parameters:
satId - the spacecraft ID
Returns:
frame in which the orbit is propagated
See Also:
MultiPropagator.addInitialState(SpacecraftState, String)

setSlaveMode

public void setSlaveMode()
Set the propagator to slave mode.

This mode is used when the user needs only the final orbit at the target time. The (slave) propagator computes this result and return it to the calling (master) application, without any intermediate feedback.

This is the default mode.

Note that this method has the side effect of replacing the step handlers of the underlying integrator set up in the constructor or the setIntegrator method. So if a specific step handler is needed, it should be added after this method has been called.

Specified by:
setSlaveMode in interface MultiPropagator
See Also:
MultiPropagator.setSlaveMode()

setMasterMode

public void setMasterMode(double h,
                          MultiOrekitFixedStepHandler handler)
Set the propagator to master mode with fixed steps.

This mode is used when the user needs to have some custom function called at the end of each finalized step during integration. The (master) propagator integration loop calls the (slave) application callback methods at each finalized step.

Note that this method has the side effect of replacing the step handlers of the underlying integrator set up in the constructor or the setIntegrator method. So if a specific step handler is needed, it should be added after this method has been called.

Specified by:
setMasterMode in interface MultiPropagator
Parameters:
h - fixed stepsize (s)
handler - handler called at the end of each finalized step
See Also:
setMasterMode(double, MultiOrekitFixedStepHandler)

setMasterMode

public void setMasterMode(MultiOrekitStepHandler handler)
Set the propagator to master mode with variable steps.

This mode is used when the user needs to have some custom function called at the end of each finalized step during integration. The (master) propagator integration loop calls the (slave) application callback methods at each finalized step.

Note that this method has the side effect of replacing the step handlers of the underlying integrator set up in the constructor or the setIntegrator method. So if a specific step handler is needed, it should be added after this method has been called.

Specified by:
setMasterMode in interface MultiPropagator
Parameters:
handler - handler called at the end of each finalized step
See Also:
#setMasterMode(MultiOrekitStepHandler)

setEphemerisMode

public void setEphemerisMode()
Set the propagator to ephemeris generation mode.

This mode is used when the user needs random access to the orbit state at any time between the initial and target times, and in no sequential order. A typical example is the implementation of search and iterative algorithms that may navigate forward and backward inside the propagation range before finding their result.

Beware that since this mode stores all intermediate results, it may be memory intensive for long integration ranges and high precision/short time steps.

Note that this method has the side effect of replacing the step handlers of the underlying integrator set up in the constructor or the setIntegrator method. So if a specific step handler is needed, it should be added after this method has been called.

Specified by:
setEphemerisMode in interface MultiPropagator
See Also:
MultiPropagator.setEphemerisMode()

setOrbitType

public void setOrbitType(OrbitType orbitTypeIn)
Set propagation orbit type.

Parameters:
orbitTypeIn - orbit type to use for propagation

getOrbitType

public OrbitType getOrbitType()
Get propagation parameter type.

Returns:
orbit type used for propagation

setPositionAngleType

public void setPositionAngleType(PositionAngle positionAngleType)
Set position angle type.

The position parameter type is meaningful only if propagation orbit type support it. As an example, it is not meaningful for propagation in Cartesian parameters.

Parameters:
positionAngleType - angle type to use for propagation

getPositionAngleType

public PositionAngle getPositionAngleType()
Get propagation parameter type.

Returns:
angle type to use for propagation

getGeneratedEphemeris

public BoundedPropagator getGeneratedEphemeris(String satId)
Description copied from interface: MultiPropagator
Get the ephemeris generated during propagation for a defined spacecraft.

Specified by:
getGeneratedEphemeris in interface MultiPropagator
Parameters:
satId - the spacecraft ID
Returns:
generated ephemeris
See Also:
MultiPropagator.setEphemerisMode()

getInitialStates

public Map<String,SpacecraftState> getInitialStates()
Description copied from interface: MultiPropagator
Get the propagator initial states.

Specified by:
getInitialStates in interface MultiPropagator
Returns:
initial states

addInitialState

public void addInitialState(SpacecraftState initialState,
                            String satId)
                     throws OrekitException
Description copied from interface: MultiPropagator
Add a new spacecraft state to be propagated.

Specified by:
addInitialState in interface MultiPropagator
Parameters:
initialState - the new spacecraft state
satId - the spacecraft ID
Throws:
OrekitException - if an initial state is already defined with this ID. if the input ID is null. if the date of the initial state is different from the initial states already defined in the propagator.

addAdditionalEquations

public void addAdditionalEquations(AdditionalEquations addEqu,
                                   String satId)
Add a set of user-specified equations to be integrated along with the orbit propagation.

Parameters:
addEqu - additional equations
satId - the spacecraft ID.
See Also:
SpacecraftState.addAdditionalState(String, double[])

addAttitudeEquation

public void addAttitudeEquation(AttitudeEquation addEqu,
                                String satId)
Add a set of user-specified attitude equations to be integrated along with the orbit propagation. If the set of attitude equations is already registered for the current attitude, it is replaced by the new one.

Parameters:
addEqu - attitude additional equations
satId - the spacecraft ID.

setMassProviderEquation

public void setMassProviderEquation(MassProvider massProvider,
                                    String satId)
Add additional equations associated with the mass provider. A null-mass detector associated with the input mass provider is automatically added.

Note that this method should be called after setSlaveMode() or setMasterMode(MultiOrekitStepHandler) or setEphemerisMode() since this method reset the integrator step handlers list.

WARNING: This method should be called only once and provided mass provider should be the same used for force models.

Parameters:
massProvider - the mass provider
satId - the spacecraft ID.

setAdditionalStateTolerance

public void setAdditionalStateTolerance(String name,
                                        double[] absTol,
                                        double[] relTol,
                                        String satId)
                                 throws OrekitException
Add additional state tolerances.

Parameters:
name - the additional state name
absTol - absolute tolerances
relTol - relative tolerances
satId - the spacecraft ID.
Throws:
OrekitException - if additional equation associated with the input additional state name is unknown

propagate

public Map<String,SpacecraftState> propagate(AbsoluteDate target)
                                      throws PropagationException
Description copied from interface: MultiPropagator
Propagate towards a target date.

Simple propagators use only the target date as the specification for computing the propagated state. More feature rich propagators can consider other information and provide different operating modes or G-stop facilities to stop at pinpointed events occurrences. In these cases, the target date is only a hint, not a mandatory objective.

Specified by:
propagate in interface MultiPropagator
Parameters:
target - target date towards which orbit state should be propagated
Returns:
propagated state
Throws:
PropagationException - if state cannot be propagated

propagate

public Map<String,SpacecraftState> propagate(AbsoluteDate start,
                                             AbsoluteDate target)
                                      throws PropagationException
Description copied from interface: MultiPropagator
Propagate from a start date towards a target date.

Those propagators use a start date and a target date to compute the propagated state. For propagators using event detection mechanism, if the provided start date is different from the initial state date, a first, simple propagation is performed, without processing any event computation. Then complete propagation is performed from start date to target date.

Specified by:
propagate in interface MultiPropagator
Parameters:
start - start date from which orbit state should be propagated
target - target date to which orbit state should be propagated
Returns:
propagated state
Throws:
PropagationException - if state cannot be propagated

addEventHandlers

protected void addEventHandlers(boolean activateHandlers,
                                Map<String,AttitudeProvider> localAttProvForces,
                                Map<String,AttitudeProvider> localAttProvEvents)
Add event handlers to integrator. Wrap all Orekit event detector and register it to the integrator.

Parameters:
activateHandlers - if true, step and event handlers should be activated
localAttProvForces - attitude providers for forces computation
localAttProvEvents - attitude providers for events computation.

setUpEventDetector

protected void setUpEventDetector(EventDetector osf,
                                  Map<String,AttitudeProvider> localAttProvForces,
                                  Map<String,AttitudeProvider> localAttProvEvents,
                                  String satId)
Wrap an Orekit event detector and register it to the integrator.

Parameters:
osf - event handler to wrap
localAttProvForces - attitude providers for forces computation
localAttProvEvents - attitude providers for events computation.
satId - spacecraft id

setUpEventDetector

protected void setUpEventDetector(MultiEventDetector osf,
                                  Map<String,AttitudeProvider> localAttProvForces,
                                  Map<String,AttitudeProvider> localAttProvEvents)
Wrap an Orekit multi-sat event detector and register it to the integrator.

Parameters:
osf - event handler to wrap
localAttProvForces - attitude providers for forces computation
localAttProvEvents - attitude providers for events computation

getPVCoordinates

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

Parameters:
date - current date
frame - the frame where to define the position
satId - spacecraft id
Returns:
position/velocity of the body (m and m/s)
Throws:
OrekitException - if position/velocity cannot be computed in given frame

getCalls

public int getCalls()
Get the number of calls to the differential equations computation method.

The number of calls is reset each time the propagate(AbsoluteDate) method is called.

Returns:
number of calls to the differential equations computation method


Copyright © 2017 CNES. All Rights Reserved.