SimSoup: Design

Modules: Reactor

Module Purpose

The SimSoup Reactor module determines which Interaction Types can occur, and the rates at which they occur. It adds and removes Molecules of the various types according to the rates at which they are produced and consumed. As such, the Reactor module produces the dynamic behaviour that results from the rules of chemistry defined by the Chemical Network and Molecular Structure modules.

Class Diagrams

The diagrams below shows the classes that form the Reactor module. The first diagram shows the data relationships between classes (there are no inheritance relationships). The second diagram shows the dependencies between classes.

Data View

The class diagram below shows the SimSoup Reactor Subsystem Data and data relationships

Dependency View

The diagram below shows the dependencies between classes in the Reactor module, and with classes in other modules.

Reactor Dependency Diagram

Class Descriptions

The classes that are included in the Chemistry module, and their definitions, are as follows:-
Molecule
A Molecule that exists in the Reactor. Molecules can be consumed or produced by interactions taking place in the Reactor according to the rules of the Interaction Types defined in the Chemical Network sub-system.
Reactor
Identifies, the following items that are present in the simulation at each timestep:
  • Realised Molecule Types whose Molecule Types have ever been realised
  • Realised Molecule Types whose Molecule Types are currently realised
  • Realisable Interaction Types
  • Realised Interaction Types
The Reactor object provides a point of integration for other objects in the Reactor, and also provides a number of module level operations. The Reactor is a singleton object; only one can exist in SimSoup at any time.
Realisable Interaction Type
Identifier for an Interaction Type that is currently realisable in the Reactor. An Interaction Type is realisable if its reactant Molecule Types are present in the Reactor in sufficient numbers for at least one interaction to take place.
Realised Interaction Type
Identifier for an Interaction Type has occurred Reactor.
Realised Molecule Type
Identifier for a Molecule Type that is (or has been) realised as a Molecule in the Reactor. Once a particular Realised Molecule Type has existed in the Reactor, it remains present even if all of the Molecules of the Molecule Type have been removed.

Explanation of Class Relationships

The records, records data for and is recorded by relationships between Indexed Series and Realised Molecule Type, Reactor and Realised Interaction Type support the time series recording of Reactor module information using Indexed Series objects.

The has occurred in relationship between Realised Molecule Type and Reactor indicates that at least one Molecule of the particular type has previously existed or currently exists in the Reactor

The is currently actualised relationship between Realised Molecule Type and Reactor indicates that at least one Molecule of the particular type currently exists in the Reactor

The has occurred in relationship between Realised Interaction Type and Reactor indicates that at least one Interaction of the type has occurred during the current simulation run.

The can occur in relationship between Realisable Interaction Type and Reactor indicates that there are sufficient reactant Molecules of the appropriate types in the Reactor to enable at least one interaction of the type to take place.

The Realised Molecule Type is type of realised Molecule relationship is self explanatory.

Similarly, the Realised Molecule Type is reactant for Realisable Interaction Type is self explanatory.

In the two indicates current or previous realisation of relationships, the Realised Molecule Type and Realised Interaction Type identify the corresponding objects in the Chemical Network that have been realised.

The Molecule is an instance of relationship is self explanatory.

The Realisable Interaction Type indicates currently realisable Interaction Type relatioship is self explanatory.