Scope: Prototype and test framework for analytic Jacobians in Python. Prepare astrodynamic utilities in C++ (e.g., state representation Jacobians).
- [KP] Write textual specification for Jacobians of state transformations.
- Written, but tough to tell if some of the time ones are correct without exhaustive testing.
- [NH] Revise existing Python prototypes of state transformation Jacobians so that corner cases are handled the same way they are in the state transformations themselves. (E.g., transforming to/from Keplerian elements in for a circular and/or equatorial orbit.)
- Not actually done, but putting off for now to focus on more pressing concerns. Finite-differencing to be used for corner cases in the interim.
- [NH] Write Python prototypes of boundary functions and their Jacobians, including for state transformations.
- State partials exist for transformations between Cartesian, sphericalAzFpa, and classical Keplerian state representations.
- Completed a smooth ephemeris to be able to implement time Jacobians (see comment).
- Have functions and Jacobians for a C3 function and simple linkage. These work if the phases and functions have different state representations and/or origins. However, they have only been checked against finite differences so far, not AD. That's fine for these simple functions, but, for more complicated functions, want AD.
- [NH] Test boundary function Jacobian prototypes against automatic differentiation.
- State partials for transformations between Cartesian, sphericalAzFpa, and classical Keplerian state representations have been tested against AD.
- I think the last step to be able to do this is to get rid of dependencies on spiceypy. I think the only one currently is for time transformations, and I will replace that with an analytical approximation. (Thanks, Steve!)
- Still an issue because of how the AD package requires that assignment statements be done. (No x[i] = y.)