org.orekit.propagation.numerical
Interface TimeDerivativesEquations

All Superinterfaces:
Serializable

public interface TimeDerivativesEquations
extends Serializable

Interface summing up the contribution of several forces into orbit and mass derivatives.

The aim of this interface is to gather the contributions of various perturbing forces expressed as accelerations into one set of time-derivatives of Orbit. It implements Gauss equations for different kind of parameters.

An implementation of this interface is automatically provided by numerical propagators to the various force models.

Author:
Luc Maisonobe, Fabien Maussion, Véronique Pommier-Maurussane
See Also:
ForceModel, NumericalPropagator

Method Summary
 void addAcceleration(Vector3D gamma, Frame frame)
          Add the contribution of an acceleration expressed in some inertial frame.
 void addAdditionalStateDerivative(String name, double[] pDot)
          Add the contribution of the change rate (dX/dt) of the additional state.
 void addKeplerContribution(double mu)
          Add the contribution of the Kepler evolution.
 void addXYZAcceleration(double x, double y, double z)
          Add the contribution of an acceleration expressed in the inertial frame (it is important to make sure this acceleration is defined in the same frame as the orbit) .
 void initDerivatives(double[] yDot, Orbit currentOrbit)
          Initialize all derivatives to zero.
 

Method Detail

initDerivatives

void initDerivatives(double[] yDot,
                     Orbit currentOrbit)
                     throws PropagationException
Initialize all derivatives to zero.

Parameters:
yDot - reference to the array where to put the derivatives.
currentOrbit - current orbit parameters
Throws:
PropagationException - if the orbit evolve out of supported range

addKeplerContribution

void addKeplerContribution(double mu)
Add the contribution of the Kepler evolution.

Since the Kepler evolution is the most important, it should be added after all the other ones, in order to improve numerical accuracy.

Parameters:
mu - central body gravitational constant

addXYZAcceleration

void addXYZAcceleration(double x,
                        double y,
                        double z)
Add the contribution of an acceleration expressed in the inertial frame (it is important to make sure this acceleration is defined in the same frame as the orbit) .

Parameters:
x - acceleration along the X axis (m/s2)
y - acceleration along the Y axis (m/s2)
z - acceleration along the Z axis (m/s2)

addAcceleration

void addAcceleration(Vector3D gamma,
                     Frame frame)
                     throws OrekitException
Add the contribution of an acceleration expressed in some inertial frame.

Parameters:
gamma - acceleration vector (m/s2)
frame - frame in which acceleration is defined (must be an inertial frame)
Throws:
OrekitException - if frame transforms cannot be computed

addAdditionalStateDerivative

void addAdditionalStateDerivative(String name,
                                  double[] pDot)
Add the contribution of the change rate (dX/dt) of the additional state.

Parameters:
name - the additional state name
pDot - the change rate (dX/dt)
Throws:
IllegalArgumentException - if the mass flow-rate is positive


Copyright © 2016 CNES. All Rights Reserved.