The use cases which tend to go in:
1. do a lot of (non time step based) data exchange to prepare model settings before a computation
2. do the computation (with time-step based interaction)
3. retrieve data after run,
In phase 1 and 3, I can imagine that exchange of objects is most appropriate
during phase 2, I can imagine that an array of doubles remains the most obvious data objects.
I could therefor imagine that we come to a distinction between:
- a 'time progressing' interface which has the 'traditional' GetValues call which returns doubles.
- a 'static section which can set and get data objects including time series objects