Organizer of simulation actions to be executed in parallel, each on its own thread.
Organizer of simulation actions to be executed in series.
Activity that repeatedly invokes an Integrator's doStep method.
Organizer and executor of actions performed by the simulation.
Enumerated type describing the status of an action.
Activitycan be paused or even halted prematurely, typically through interaction with a user interface. The class that "runs" an Integrator, repeatedly invoking its doStep method, is an example of an Activity.
Specific sequences of actions can be defined by extending ActivityGroupSeries (which performs the tasks sequentially) or ActivityGroupParallel (which performs the tasks simultaneously, on separate threads). Traversal across a series of state points, for example to perform a thermodynamic-integration calculation, could be suitably implemented as an ActivityGroupSeries.
Controller is a special ActivityGroupSeries that loops through a mutable
list of Actions/Activities, performing each in turn. Each Simulation has one Controller instance,
through which the simulation is conducted and other tasks are performed.