This paper describes the core of an object-oriented simulation framework (SF), implemented in C++, to support hierarchical dynamic systems simulators development. The simulation framework (SF) presented herein arose from the need for a tool to facilitate and standardize the development of process-based simulation models in research projects at Embrapa (Brazilian Agricultural Research Corporation). This SF targeted modularity and simplicity of code to facilitate model development by multidisciplinary research teams and implementation by high turnover groups of student trainees. Model components, typically developed by teams of experts in specific processes, can be developed independently and later connected, sequentially or aggregated in a hierarchical way. The SF allows compiling simulators as libraries and provides a general interface to allow simulations to be carried out by client applications, e.g. graphical user interfaces, databases, statistical or mathematical packages. In contrast to other existing frameworks, this SF does not store the trajectories of the variables but allows the client application to get the values of the outputs along the simulation through the use of callbacks. The client application can store the variables trajectories in the most convenient way for its specific purpose. The SF supports continuous, discrete-event and hybrid simulations. An example application is provided.
['Adauto L. Mancini', 'L. G. Barioni', 'H. N. Lima', 'J. W. Santos', 'Régis Henrique dos Reis Silva', 'Santos Eh', 'Fernando Rodrigues Teixeira Dias']
A compact and flexible C++ framework to support modular development of hierarchical dynamic systems simulators (wip): Embrapa agricultural informatics