GlobalSimulation - move towards using GlobalSim version of L1Topo Algorithms
The current version of GlobalSim version of L!TopoSimulation emphasizes the use of Athena practices - Algorithms classes are implemented as AlgTools, all of which belong to a single Athena re-entrant Algorithm. Data, which runs along the edges of a digraph, are communicated via the event store. Some monitoring has been put in place following current Athena practices.
In order to keep the run() methods constant, and thus the Athena Algorithm to be re-entrant, the final functions, which are not constant due to monitoring needs, have been split of into their own non-Athena classes. This has a further advantage - those who wish to contribute work to the Simulation can do so outside of Athena. Of course, existing function signatures must be respected if such work is to be easily introduced into the simulation.
During the python configuration, the dependencies among Algorithms (in this demo, the Algorithms are L1Topo Algorithms) are modeled using a digraph. The AlgTools which perform the Simulation Algorithms are placed in the ToolArray such that the ToolArray is sequentially iterated over each event.