The simulation engine is a collection of C++ classes that are used to build a simulator. Models are constructed by extending classes that encapsulate structure and dynamics. These are given to objects implementing the simulation algorithms that calculate the model’s dynamic behavior. The classes that encapsulate the simulation algorithms have methods for monitoring and controlling the progress of the simulator.
Large models are built with two types of components. Atomic models describe things that are fundamental. They encapsulate the dynamic behavior of components that, as the name suggests, are not subjected to further decomposition. The tank’s interrupt handler, packet-processing model, and the differential equations that describe the tank’s motion are atomic models. Network models are composed of interacting parts: atomic models and other networks. They encapsulate structure: the components and linkages in a multicomponent system. The tank’s computer and the tank itself are network models.
The simulation engine operates on the interfaces provided by these two types of components. An atomic model has methods for computing its output from its current state and for computing its next state from its current state and input. A network model has methods for retrieving its set of components, for transforming output from its components to inputs for its other components and outputs from itself, and for transforming its inputs into input for its components. ...