Class EpochDerivativesEquations
- java.lang.Object
-
- org.orekit.propagation.numerical.EpochDerivativesEquations
-
- All Implemented Interfaces:
AdditionalDerivativesProvider
public class EpochDerivativesEquations extends Object implements AdditionalDerivativesProvider
Computes derivatives of the acceleration, including ThirdBodyAttraction.Providercomputing the partial derivatives of the state (orbit) with respect to initial state and force models parameters.This set of equations are automatically added to a
numerical propagatorin order to compute partial derivatives of the orbit along with the orbit itself. This is useful for example in orbit determination applications.The partial derivatives with respect to initial state can be either dimension 6 (orbit only) or 7 (orbit and mass).
The partial derivatives with respect to force models parameters has a dimension equal to the number of selected parameters. Parameters selection is implemented at
force modelslevel. Users must retrieve aparameter driverusingParameterDriversProvider.getParameterDriver(String)and then select it by callingsetSelected(true).If several force models provide different
driversfor the same parameter name, selecting any of these drivers has the side effect of selecting all the drivers for this shared parameter. In this case, the partial derivatives will be the sum of the partial derivatives contributed by the corresponding force models. This case typically arises for central attraction coefficient, which has an influence onNewtonian attraction,gravity field, andrelativity.- Since:
- 10.2
- Author:
- Véronique Pommier-Maurussane, Luc Maisonobe
-
-
Field Summary
Fields Modifier and Type Field Description static intSTATE_DIMENSIONState dimension, fixed to 6.
-
Constructor Summary
Constructors Constructor Description EpochDerivativesEquations(String name, NumericalPropagator propagator)Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CombinedDerivativescombinedDerivatives(SpacecraftState s)Compute the derivatives related to the additional state (and optionally main state increments).intgetDimension()Get the dimension of the generated derivative.StringgetName()Get the name of the additional derivatives (which will become state once integrated).SpacecraftStatesetInitialJacobians(SpacecraftState s0)Set the initial value of the Jacobian with respect to state and parameter.SpacecraftStatesetInitialJacobians(SpacecraftState s1, double[][] dY1dY0, double[][] dY1dP)Set the initial value of the Jacobian with respect to state and parameter.voidsetInitialJacobians(SpacecraftState state, double[][] dY1dY0, double[][] dY1dP, double[] p)Set the Jacobian with respect to state into a one-dimensional additional state array.-
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.integration.AdditionalDerivativesProvider
init, yields
-
-
-
-
Field Detail
-
STATE_DIMENSION
public static final int STATE_DIMENSION
State dimension, fixed to 6.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
EpochDerivativesEquations
public EpochDerivativesEquations(String name, NumericalPropagator propagator)
Simple constructor.Upon construction, this set of equations is automatically added to the propagator by calling its
AbstractIntegratedPropagator.addAdditionalDerivativesProvider(AdditionalDerivativesProvider)method. So there is no need to call this method explicitly for these equations.- Parameters:
name- name of the partial derivatives equationspropagator- the propagator that will handle the orbit propagation
-
-
Method Detail
-
getName
public String getName()
Get the name of the additional derivatives (which will become state once integrated).- Specified by:
getNamein interfaceAdditionalDerivativesProvider- Returns:
- name of the additional state (names containing "orekit" with any case are reserved for the library internal use)
-
getDimension
public int getDimension()
Get the dimension of the generated derivative.- Specified by:
getDimensionin interfaceAdditionalDerivativesProvider- Returns:
- dimension of the generated
-
setInitialJacobians
public SpacecraftState setInitialJacobians(SpacecraftState s0)
Set the initial value of the Jacobian with respect to state and parameter.This method is equivalent to call
setInitialJacobians(SpacecraftState, double[][], double[][])with dYdY0 set to the identity matrix and dYdP set to a zero matrix.The force models parameters for which partial derivatives are desired, must have been
selectedbefore this method is called, so proper matrices dimensions are used.- Parameters:
s0- initial state- Returns:
- state with initial Jacobians added
-
setInitialJacobians
public SpacecraftState setInitialJacobians(SpacecraftState s1, double[][] dY1dY0, double[][] dY1dP)
Set the initial value of the Jacobian with respect to state and parameter.The returned state must be added to the propagator (it is not done automatically, as the user may need to add more states to it).
The force models parameters for which partial derivatives are desired, must have been
selectedbefore this method is called, and thedY1dPmatrix dimension must be consistent with the selection.- Parameters:
s1- current statedY1dY0- Jacobian of current state at time t₁ with respect to state at some previous time t₀ (must be 6x6)dY1dP- Jacobian of current state at time t₁ with respect to parameters (may be null if no parameters are selected)- Returns:
- state with initial Jacobians added
-
setInitialJacobians
public void setInitialJacobians(SpacecraftState state, double[][] dY1dY0, double[][] dY1dP, double[] p)
Set the Jacobian with respect to state into a one-dimensional additional state array.This method converts the Jacobians to Cartesian parameters and put the converted data in the one-dimensional
parray.- Parameters:
state- spacecraft statedY1dY0- Jacobian of current state at time t₁ with respect to state at some previous time t₀dY1dP- Jacobian of current state at time t₁ with respect to parameters (may be null if there are no parameters)p- placeholder where to put the one-dimensional additional state
-
combinedDerivatives
public CombinedDerivatives combinedDerivatives(SpacecraftState s)
Compute the derivatives related to the additional state (and optionally main state increments).- Specified by:
combinedDerivativesin interfaceAdditionalDerivativesProvider- Parameters:
s- current state information: date, kinematics, attitude, and additional states this equations depend on (according to theyieldsmethod)- Returns:
- computed combined derivatives, which may include some incremental coupling effect to add to main state derivatives
-
-