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
Replace the propagator types with an enum name representing the coefficients of each chosen propagator
Replace the error control with an enum as well that will select the error control given its name
Remove RK related generics that exist in the propagator and every structure that is generic over the propagator.
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