Right now, the methods used for numerical computations are somehow hardcoded and their parameters are all contained in the OrbitalParameters structure.
It would be great to free the following methods (probably using multi-dispatch ?):
anomaly (hardcoded to Hénon)
integration method (hardcoded to RK4 for actions and frequencies)
differentiation method (hardcoded to naive finite differences)
inversion method (hardcoded to Newton-Raphson)
One way to currently bypass this for a specific potential is to define all the mappings using multi-dispatch on the model type. This is already used for the analytic computations for Isochrone. However, this is not very convenient.
We should keep in mind the following requirements:
Signatures of the functions need to be the same (while, e.g., in some analytical cases, there is no real need for an 'inversion' method)
Right now, the methods used for numerical computations are somehow hardcoded and their parameters are all contained in the OrbitalParameters structure. It would be great to free the following methods (probably using multi-dispatch ?):
One way to currently bypass this for a specific potential is to define all the mappings using multi-dispatch on the model type. This is already used for the analytic computations for Isochrone. However, this is not very convenient.
We should keep in mind the following requirements: