Open kyllingstad opened 8 months ago
Suggestions for suitable storage formats are welcome. Note that according to the FMI spec, each subsimulator does its own serialisation and deserialisation, and all the co-simulator sees are binary blobs. So the format needs to support storage of arbitrary binary data.
@davidhjp01, you asked in another issue discussion whether you should start working on this issue. But as noted in the issue description, this depends on #768, which is a work currently in progress, so there is a limit to how much can be done on this yet.
It might be good to start looking into suitable file formats for the saved state, though. We need some format which can store the contents of a cosim::serialization::node
, i.e., a hierarchical data structure with both numerical, textual, and binary data types (see node_data
for a list of the types).
Personally, I would prefer something which is lightweight both in terms of features, complexity, and additional dependencies, but efficiency is also a factor. I guess we can discuss where the perfect trade-off lies when we have some alternatives on the table.
Once we've decided on a storage format, it is also possible to write the functions to save/load a generic cosim::serialization::node
to/from a file even if #768 is not completely done yet.
This feature is desired in the OptiStress project, where we will need to simulate the same system many times in a loop with parameter variations. It will save a lot of time since we can start each simulation from a “warmed up” state.
Depends on #756 and #768.