Modularize Jacobians computation in NumericalPropagator
This issue is a first step towards solving issue #855 (closed).
In addition to have a very awkward API, the PartialDerivativesEquations
class does not meet some current needs.
It computes both the State Transition Matrix and the parameters Jacobians as a single AdditionalEquations
and this single equation should manage all derivatives by itself as the JacobiansMapper
is used by orbit determination and expect the matrix columns to be in a specific order.
This is inflexible and does not allow to compute efficiently derivatives with respect to maneuver start date (which can be seen as a force model parameter). This computation is rather done using an analytical AdditionalStateProvider
, but this provider reuses the pre-integrated State Transition Matrix, and should therefore see this integrated state.
This could be solved setting up some kind of priority or dependency between additional states (both analytical ones and integrated ones) and splitting current computations into smaller chunks (one for STM, one for each column of Jacobians with respect to parameters).