# Jacobian parameters computation model

Hi,

I am looking for the computation logic of the jacobian parameters during a numerical propagation scenario with an implemented SRP force model. My goal is to understand how the SRP drag coefficient (e.g Orekit REFLECTION_COEFFICIENT) selected as a parameter driver affects the computation of the jacobian parameters throughout the numerical propagation.

The overhaul process leads a bit into a rabbit hole down to the Hipparchus integrator processes.
Is there by any chance a reference paper the jacobian parameters computational model is based on?

Best regards,
Gueorguy

The two basic engines involved in this computation are:

• variational equations (see for example â€śSolving Ordinary Differential Equations - I : Nonstiff problemsâ€ť by Hairer, NĂ¸rsett and Wanner)
• algorithmic differentiation (see for example â€śEvaluating Derivatives - Principal and Techniques of Algorithmic Differentiationâ€ť by Griewank and Walther)

Hi,

I can try to elaborate a bit. Hopefully I wonâ€™t say anything that is not true.

Basically when you select parameter drivers or the simple STM option, the propagator adds to the so-called primary variables (mass and PV-like coordinates) secondary ones to the integration. Those do not play any role with the adaptive stepsize if applicable. Those variables satisfy differential equations known as variational equations. They are computed using automatic differentiation for Cartesian coordinates (with some tricks to optimise performance), and converted in other type if necessary. Thatâ€™s the `acceleration` method in `ForceModel` (the one with `Field`). There is then a whole system in place to rearrange these variables in a matrix when the user asks for it. And because Hipparchus integrators all have dense output, there is also a layer so that everything can be interpolated if required. So yeah overall the integration system split between the two librairies is not trivial, but it has many features. Iâ€™ll actually be talking a bit about that in the Orekit talk next week.

Note that if you want, you can actually perform automatic differentiation on the propagation itself, using `FieldNumericalPropagator`. This is usually less computationally effective because literally all calculations are done on non primitive types.

Cheers,
Romain.

3 Likes

Thanks for the thorough explanation, Romain! Mine was really terse

Hi @luc @Serrof,

Thank you for the detailed feedbacks and sorry for this late response.
@Serrof is there a presentation video record available of the mentionned Orekit talk?

If I understand well, the solutions of the variational equations are products of the secondary variables and the cartesian coordinates. Also the `acceleration` method of the `SolarRadiationPressure` class would output the same derivatives expected within the extracted Jacobian parameters.

Best regards,
Gueorguy

Hello @Gueorguy! Hereâ€™s the link to the thread with the video as well as other resources!

1 Like