Coral: Roadmap

This page lists features and changes we have planned for upcoming releases of Coral.

These changes are being implemented as we speak:

Feature Description

These are features and changes we plan to implement as soon as we're able after the next release:

Feature Description
Observers Currently, output data from each slave in a simulation gets written to text files in CSV format, and there is no way to control which data gets written. This sometimes leads to huge and very unwieldly output files. Also, we realise that not everyone is super thrilled about CSV. Another problem we have now is the files get stored on the computer on which the slave is running, which is rather impractical if that happens to be another computer than the one you're running the simulation from. Observers are our planned solution to this. They represent a “read only” view of the simulation: They receive information about the slaves, such as variable names and values, but they have no way of affecting the simulation themselves. Data loggers and visualisation tools should all be implemented as observers.

These are features we plan to implement in the future, but they're of a slightly lower priority than the short-term ones:

Feature Description
Function units These are simulation entities similar to slaves, except that they perform their calculations between time steps, at communication points. They can be used for modelling of (near-)instantaneous phenomena, for coordinate transformations, signal algebra and more. (We've written a short article about function units which you can check out.)
Error estimation It is important to know whether your simulation results can be trusted. There are methods for calculating estimates of certain types of simulation errors, which we'll implement in Coral. This opens the door for…
Adaptive co-simulation algorithms Once you have a way to estimate errors, your co-simulation algorithm can automatically adjust the step size to prevent the errors from growing too big.