This is the last PSim infrastructure PR! (hopefully at least)
Overview
Opening this up as a draft for the time being so we can have more eyes on this before it's the architecture we go with. What I'm going for here is to develop two main entry points an end user of PSim can interact with.
The first is just the raw Simulation class. I see this as the entrypoint for PTest so PTest can "own" the sim as opposed to the other way around.
The second is the simulation runner and plugin system. In this case, the SimulationRunner class contains the "main loop" and the end user just kicks it off. We'll then write plugins to do extra interaction with the simulation such as different stopping conditions, data logging, plotting, and even plugging in control algorithms to perform some tests. Currently, there is a simple stop condition plugin that just looks at step count and a basic 2D/3D data driven plotting tool.
Closes #237.
This is the last PSim infrastructure PR! (hopefully at least)
Overview
Opening this up as a draft for the time being so we can have more eyes on this before it's the architecture we go with. What I'm going for here is to develop two main entry points an end user of PSim can interact with.
The first is just the raw
Simulation
class. I see this as the entrypoint for PTest so PTest can "own" the sim as opposed to the other way around.The second is the simulation runner and plugin system. In this case, the
SimulationRunner
class contains the "main loop" and the end user just kicks it off. We'll then write plugins to do extra interaction with the simulation such as different stopping conditions, data logging, plotting, and even plugging in control algorithms to perform some tests. Currently, there is a simple stop condition plugin that just looks at step count and a basic 2D/3D data driven plotting tool.Both of these could be improved in the future.