aerie
aerie copied to clipboard
Minor Improvements to Aerie Orchestration Utils
Checked for duplicates
No - I haven't checked
Alternatives considered
No - I haven't considered
Related problems
No response
Describe the feature request
When utilizing the SimulationUtility() class for the first time when writing a "stateless" aerie build for an aerie model plus scheduling procedures, I ran into a couple issues that were not immediately obvious to me, which hampered my on-boarding experience to utilizing this class.
- I first constructed the SimulationUtility() with the no argument constructor. When I subsequently went to try to use the SimulationResultsWriter(), sim results were not written to a file as expected. Digging a little deeper it turned out that passing in a ResourceFileStreamer() to SimulationUtility() was required to get the file to write out correctly. This was not intuitive, especially since the utility and writer were separate objects.
- Writing out simulation results is a little complicated as you have to use a few additional objects that as I user of this API I don't really care about. Specifically the CanceledListener() class and ResourceFileStreamer(). Ideally, these would be hidden from me and I could simply create a new writer (or have the SimulationUtility include the writer) and call .writeResults
- Once I had results writing to the file correctly, my program was still hanging. I did not realize that I had to perform a simUtility.close() to make sure all threads were closed out. Again, I would prefer that this type of behavior was taken care of for me, so I didn't have to know details about how the writer and utility are working behind the scenes.