SimSoup: Design

SimSoup Layered Architecture

SimSoup Layered Architecture

The Kernel Layer

This includes the SimSoup Kernel, which is the heart of the model. It is responsible for representing Molecules and the Interactions that take place between them. The Kernel is also responsible for ensuring that the simulation is setup and run according to the user's requirements (as specified in 'Action Requests').

The Kernel Layer includes two areas of functionality outside the Kernel: utilities (eg for random number sequence handling), and a subsystem for storing and retrieving simulation statistics.

The User Interface Management Layer

This manages the processing of user inputs, and the display of data to be presented on the user interface. It does not control the user interface directly; instead it manages an abstraction of the user interface. This ensures that it is isolated from the details of the graphics toolset used for presentation.

The User Interface Presentation Layer

This is responsible for presentation of the user interface, including screen display and handling of user inputs; it uses the GTK+ graphics toolset. This usage is shown on the diagram by extending the User Interface Presentation Layer into the GTK+ box. GTK+ also plays a role in the overall operation of the system, by running the simulation when there is no user interface activity required.

Communication Between Layers

There are three categories of 'downward' communication:- There are two kinds of 'upward' communication:-