Simulation Controls

Last modified on February 1st, 2023.


Innoslate offers additional simulator capabilities, which allow a user to further control and/or customize model execution.

Asset Utilization

Asset Utilization prevents over-allocating a particular 'Asset' to an 'Action.' Asset Utilization will capture an 'Asset' until an 'Action' has completed execution. The usage of each 'Asset' is monitored during simulation and graphically displayed in the simulation results.

To control simulation flow, each 'Asset' utilized must have a parent 'Asset.' Typically, an Innoslate model will have a Physical Hierarchy of 'Assets.' 'Assets' in this hierarchy have a Multiplicity relationship attribute. If the 'Asset' is part of this hierarchy and the Multiplicity relationship attribute is set then the 'Asset' can be utilized. To utilize an 'Asset,' set the Amount attribute on the performed by relationship. In simulation, if an 'Asset' is over utilized then the simulator will block all other 'Actions' that 'Asset' performs until adequate amount is available.

Capacity

Innoslate can simulate throughput and latency utilizing the Conduit class. A Conduit transfers/transferred by an Input/Output. The simulated delay of an Input/Output is equal to the Size of the Input/Output over the Capacity of the Conduit which transfers the Input/Output plus the Latency of the Conduit. This is expressed in the equation below:

For example if the Input/Output Size is 20, the Conduit Capacity is 5, and the Conduit Latency is 2 hours the duration will be as follows.

The time units of the Input/Output Size over Conduit Capacity conversion will default to hours. The simulator can also automatically convert and calculate units by utilizing the time units following a slash (“/”) in the Conduit’s Unit attribute.  If the time units equals “s” or “sec” or “seconds” then the delay units will equal seconds.  If the time units equal “m” or “min” or “minutes” then the delay units will be equal to minutes.  If there is no slash (“/”) or the time units are not understood, the time units will be hours. For example if the Conduit Latency is 1 minute, the Conduit Capacity is 100, the Conduit Units are gallons/second, and the Input/Size is 500 then the resultant Duration will equal 65 seconds (500/100 seconds + 1 minute).

Note: If an Input/Output is transferred by multiple Conduits the simulator will output a warning message to the 'Console' panel.

Cloning

Cloning creates copies of an existing Action and its decomposition at simulation run-time. The simulator will copy an Action and execute each copy as if each copy was its own parallel branch. The number of clones can be set by modifying the decomposes/decomposed by Multiplicity relationship attribute. To set this attribute select the Action to be cloned in the 'Action Diagram' and click the 'Open' drop-down and then select the 'Entity View' menu item to navigate to the Action's 'Entity View.' Then click the 'Attributes' button under the decomposes/decomposed by relationship. Set the relationship's Multiplicity attribute to the number of clones desired.

Cost

Total Cost will be automatically calculated based on the incurs/incurred by relationship during a simulation run. A Cost’s Amount is added to the simulation’s total running costs. If an entity has multiple incurs Cost relationships the simulator will add the costs individually.

The simulator can calculate "Fixed" or "Per Hour" costs by setting the 'Rate' attribute. If 'Rate' equals "Fixed" then the cost will be added to the simulation’s cost at the value specified regardless of the duration of the associated model element. If 'Rate' equals "Per Hour" then the Cost’s Amount will be multiplied by the duration of the model element. Below is the equation representation of this.

Note: The Units of the first Cost the simulator encounters will be used as the units for that simulation run.

Simulation Scripts

Scripts are a powerful method of controlling the underlying functional logic of a simulation written in JavaScript. Each script is unique to a given Action entity, and only interacts with other scripts via global variables. Script entry is done in the 'Edit Script' dialog, accessed by clicking on the 'Script' button when you have an 'Action' selected in an 'Action Diagram.'

Open Script Modal

For more information on how to script the simulator, see Simulation Scripts.

Wait States

The simulator panels utilize colors to identify the Action's state during simulation. The table below identifies each state and its appropriate color.

ColorStateDescription
GrayInactiveThe Action was not activated or has been killed by a SYNC point.
YellowInput/Output WaitThe Action is waiting for an Input/Output(s).
PurpleResource WaitThe Action is waiting for a Resource Amount(s).
OrangeAsset Utilization WaitThe Action is waiting for enough Asset performers to execute.
MaroonCloning OperationThe Action is currently being executed through a cloning operation.
GreenExecutingThe Action is executing.
BlueCompleteThe Action has completed execution.

Simulation Controls

Last modified on February 1st, 2023. 


Innoslate offers additional simulator capabilities, which allow a user to further control and/or customize model execution.

Asset Utilization

Asset Utilization prevents over-allocating a particular ‘Asset’ to an ‘Action.’ Asset Utilization will capture an ‘Asset’ until an ‘Action’ has completed execution. The usage of each ‘Asset’ is monitored during simulation and graphically displayed in the simulation results.

To control simulation flow, each ‘Asset’ utilized must have a parent ‘Asset.’ Typically, an Innoslate model will have a Physical Hierarchy of ‘Assets.’ ‘Assets’ in this hierarchy have a Multiplicity relationship attribute. If the ‘Asset’ is part of this hierarchy and the Multiplicity relationship attribute is set then the ‘Asset’ can be utilized. To utilize an ‘Asset,’ set the Amount attribute on the performed by relationship. In simulation, if an ‘Asset’ is over utilized then the simulator will block all other ‘Actions’ that ‘Asset’ performs until adequate amount is available.

Capacity

Innoslate can simulate throughput and latency utilizing the Conduit class. A Conduit transfers/transferred by an Input/Output. The simulated delay of an Input/Output is equal to the Size of the Input/Output over the Capacity of the Conduit which transfers the Input/Output plus the Latency of the Conduit. This is expressed in the equation below:

For example if the Input/Output Size is 20, the Conduit Capacity is 5, and the Conduit Latency is 2 hours the duration will be as follows.

The time units of the Input/Output Size over Conduit Capacity conversion will default to hours. The simulator can also automatically convert and calculate units by utilizing the time units following a slash (“/”) in the Conduit’s Unit attribute.  If the time units equals “s” or “sec” or “seconds” then the delay units will equal seconds.  If the time units equal “m” or “min” or “minutes” then the delay units will be equal to minutes.  If there is no slash (“/”) or the time units are not understood, the time units will be hours. For example if the Conduit Latency is 1 minute, the Conduit Capacity is 100, the Conduit Units are gallons/second, and the Input/Size is 500 then the resultant Duration will equal 65 seconds (500/100 seconds + 1 minute).

Note: If an Input/Output is transferred by multiple Conduits the simulator will output a warning message to the ‘Console’ panel.

Cloning

Cloning creates copies of an existing Action and its decomposition at simulation run-time. The simulator will copy an Action and execute each copy as if each copy was its own parallel branch. The number of clones can be set by modifying the decomposes/decomposed by Multiplicity relationship attribute. To set this attribute select the Action to be cloned in the ‘Action Diagram’ and click the ‘Open’ drop-down and then select the ‘Entity View’ menu item to navigate to the Action’s ‘Entity View.’ Then click the ‘Attributes’ button under the decomposes/decomposed by relationship. Set the relationship’s Multiplicity attribute to the number of clones desired.

Cost

Total Cost will be automatically calculated based on the incurs/incurred by relationship during a simulation run. A Cost’s Amount is added to the simulation’s total running costs. If an entity has multiple incurs Cost relationships the simulator will add the costs individually.

The simulator can calculate “Fixed” or “Per Hour” costs by setting the ‘Rate’ attribute. If ‘Rate’ equals “Fixed” then the cost will be added to the simulation’s cost at the value specified regardless of the duration of the associated model element. If ‘Rate’ equals “Per Hour” then the Cost’s Amount will be multiplied by the duration of the model element. Below is the equation representation of this.

Note: The Units of the first Cost the simulator encounters will be used as the units for that simulation run.

Simulation Scripts

Scripts are a powerful method of controlling the underlying functional logic of a simulation written in JavaScript. Each script is unique to a given Action entity, and only interacts with other scripts via global variables. Script entry is done in the ‘Edit Script’ dialog, accessed by clicking on the ‘Script’ button when you have an ‘Action’ selected in an ‘Action Diagram.’

Open Script Modal

For more information on how to script the simulator, see Simulation Scripts.

Wait States

The simulator panels utilize colors to identify the Action’s state during simulation. The table below identifies each state and its appropriate color.

ColorStateDescription
GrayInactiveThe Action was not activated or has been killed by a SYNC point.
YellowInput/Output WaitThe Action is waiting for an Input/Output(s).
PurpleResource WaitThe Action is waiting for a Resource Amount(s).
OrangeAsset Utilization WaitThe Action is waiting for enough Asset performers to execute.
MaroonCloning OperationThe Action is currently being executed through a cloning operation.
GreenExecutingThe Action is executing.
BlueCompleteThe Action has completed execution.