File structure and architecture

File structure and architecture#

The program and GitHub site are structured and organised for flexible and easy use. The key components you may interact with are:

  • Simulation: the user entry-point to the program. This class sets parameters and constructs the Model from them, controlling the simulation flow.

  • Model: the heart of the program. This class manages the interacting components of the model and defines the model steps.

  • Record: controls the generation of and recording to output files.

  • sets.h: contains the default parameter sets.

  • InputParams: defines the parameters needed to construct Simulation.

  • Params.h: defines the substructures for parameters, such as InherParams to use in Simulation::set_inheritance()

  • test: directory in the GitHub site which contains test data, and sample testing and data visualisation scripts (in Python).

The program architecture has been designed such that the Simulation class will provide easy interaction for new users, and more advanced users may interact directly with the Model and Record classes, with the potential to extend these. The set_inheritance() method in Simulation may also be easily overloaded, as we expect this section of the program to be extended and interface with other programs in the future.