nyx-space / nyx

Nyx is a high fidelity, fast, reliable and validated astrodynamics toolkit library written in Rust and available in Python
https://nyxspace.com
GNU Affero General Public License v3.0
196 stars 20 forks source link

Reduce number of generics for propagator options #366

Closed ChristopherRabotin closed 1 month ago

ChristopherRabotin commented 1 month ago

Maintenance task description

Generics enforce compile-time checks at the cost of increased compilation time and less run-time flexibility. For #333 , some level of reduction in the number of generics will happen necessarily. The purpose of this task is to reduce the generics associated with the propagator set up.

Notably, the propagator type should be configured via an enum, including the error control method. This feature will also add the ability to serialize in Dhall or TOML the propagator settings to reload them at a later date exactly as is. In the 7+ years of Nyx, no one ever uses other propagators than the RK89, DP78, and RK4 fixed. No one adds new propagator types. No one adds error control methods.

Scope of work

Priority