2.11 COMBINING MODULES—ESSENTIAL CONSIDERATIONS
The next step involves combining modules to build models. In turn, we might use these models for analysing and diagnosing systemic problems, and development of remedial strategies. However, combining modules to create complete working models brings with it some very real risks.
These risks can be minimised by:
- ensuring that material is neither created nor destroyed (lost or corrupted) at the interface between the modules;
- ensuring consistency of:
- dt—delta time, the specified increment of time used in making numerical method approximations—for every module and model we specify, we must specify dt—modules can only be connected if they have the same dt;
- simulation timestep—this is the time used for modelling the observed dynamic phenomena;
- simulation time horizon—before simulating any module or model we must specify the time horizon over which the simulation is to run—this includes the starting time, the exact duration and the finishing time;
- units—these are the units of the simulation—the units used must be defined either as fundamental units, that is, atomic units or units derived from atomic units; and
- array dimensions and ranges—the dimensions of any array which might be manipulated across the initially defined boundary of the problem must be consistently defined within all related and defined problem spaces;
- order in which calculations are to be conducted—it is essential to ensure that within the module and complete model that outflows into stocks do not occur before inflows, thereby ensuring stocks do not become negative; and
- ensuring data is handled at appropriate and consistent levels of aggregation.
Practices borrowed from systems engineering will assist in the building of working system dynamics models composed of several modules. These practices include requirements engineering and building of functional and performance statements (albeit in an abbreviated form in system dynamics modelling).
Many real-world problems can only be replicated with sufficient fidelity by using multi-dimensional arrays. Building models to handle highly aggregated data is not always appropriate; the availability and form of data can impose constraints on how we might build models and populate them with data.
