Vase is an extensible process simulator that can handle both individual and continuous tasks. Examples of individual tasks are customers at a bank, cars on an assembly line, or documents in an office. Examples of continuous tasks are oil in a refinery or water in a river.
A source generates a task. The task moves through the process until it reaches a sink. The path of the task through the process depends on the nature of the task, the modifications which may occur to the task and the connections in the process.
The name Vase is based on an image of the process as a network of pipes and flowers. The pipes allow tasks to flow between flowers. The flowers are event handlers which modify the tasks and control their movement. The arrangement of flowers that define a process is called a vase.
Vase is designed to make it easy as possible to add specialized flowers ( event handlers ) with their own appearance and behaviour. Here are screenshots of two models using specialized flowers.
Sample Model: Pellet Dryer
This shows a model of a wood pellet drying plant. It has custom designed flowers which are not available in the open source code.
Sample Model: Fermenter
This shows the simulation of a fermentation process with Ex situ Butanol Recovery (ESBR) for biobutanol production. The simulation is based on this paper .
The screenshot shows the VASE process model: essentially a fermenter and an adsorber connected with a circulating flow. In the bottom right is a pop up where the user can enter starting conditions and parameters. In the background is a graph showing the results of a simulation run, with the sugar, ethanol and butanol concentrations in the fermenter plotted against time.
The ESBR model is under development, currently ( March 2016 ) the adsorber is being implemented. All the code is open source and is available in the VASE repository.
Sample Model: Stopping Machine
Here is a task orientated simulation of a production line with machines that stop from time to time
The background graph shows the throughput ( green ) and queue size ( red ) for machine_1 plotted against time.