consider changing rhs() interface in integrator to pass y instead of integrator type
Right now, we pass the full integrator type (like vode_t) to the rhs() wrapper and then copy vode_t integrator_state.y() into the burn_t state to do the burn. But some integrators (like the RKC) want to pass in different states that are not always in the .y() slot in the integrator type.
We should consider changing the wrappers to explicitly pass in the state, y() instead of the entire integration state. I think that this is very straightforward.
The reason I wanted to move away from this in the past is that it creates ambiguity as to which y has the up-to-date data. Is it possible instead for the RKC integrator to insert its additional needed data into the integrator type? If not, what kind of objects is it passing in?
I have all of the data in the integrator type, it's just that there are 5 different RArray1D's there, and it needs to use 4 different ones as the starting point for the RHS. So right now I am just saving y(), then copying the data into y(), calling rhs() and then restoring y(). That should work, but it's a lot of copying.