Jump to content
Simio Forum

Candidate Library - Pipe & Enhanced Server

Recommended Posts

The [b]Candidate Library[/b] is special library used to stage objects before moving them into the [b]Standard [/b]or [b]Flow Library[/b]. At some future date these objects [i]may[/i] be moved “as-is”, or they may have some design changes before integrating them into the [b]Standard/Flow Library[/b]. We encourage users to provide feedback on these objects so that any suggested changes can be reflected in their final implementations.

This version of [b]Candidate Library[/b] has two objects: a [b]Pipe [/b]and a [b]Server[/b]. The [b]Pipe [/b]is targeted to be added to the Flow Library and is an updated version of the [b]Pipe [/b]in the [b]Transportation Library[/b]. It is useful for modeling flow between two FlowNodes where travel speed and volume are important considerations. An example model is included ([b]SimplePipeFlow[/b])

The [b]Server [/b]is targeted to replace the existing [b]Server [/b]in the [b]Standard Library[/b]. This new [b]Server [/b]object has the exact same functionality as the existing [b]Server [/b]but also supports multi-phase activities. This is useful in modeling situations where a number of activities take place at one location and each activity requires different resources. These activities can be specified either directly on the [b]Server[/b], or through the use of relational tables. This makes it much easier to model multi-phase activities such as found in healthcare, complex batch operations, or assembly operations. An example model is included ([b]MultiphaseServer[/b])

[b][color=#0000FF]These objects have been made part of the Flow Library and the Server object in the Standard Library.[/color][/b]

Share this post

Link to post
Share on other sites
I had a few thoughts on the multi-phase server.

1) This is executing tasks sequentially. What about the cases where there are some tasks in parallel. For example, you go into a server and 4 tasks are done in parallel, once all 4 are complete, you start the next 3 in sequence, followed by the last 4 in parallel.
2) Each task can require an additional resource. How would we structure this to require multiple resources for some tasks, while only requiring 1 or none for others? For example, in healthcare, once you are in the room, maybe you need:
- nurse
- nurse & doctor
- doctor only
- nurse & doctor
- nurse only
Could you utilize lists to pass in these multi-requirement tasks? What about tasks that could be serviced by one of many resource types, could we somehow utilize lists again for that behavior?

Looping through a table to execute sequential delays is not very cumbersome if I need to do it on a project, so I don't see alot of gain with this multi-server. The development time gain is minimal, and there is a cost of adding another layer of complexity to the server object. [i]However[/i], if you address the above complexities, then I could see this multi-task server being powerful in reducing development time on some projects.

Regardless of whether this makes it into a future release as a standard, can we please take advantage of the ability to pass arguments to create smaller, more readable processes in the Simio objects. Some of the processes on Simio objects can get so large, it is hard to modify them when we have a legitimate need to sub-process. Everything in red after the decide block on this candidate server could be put in another process called "ExecuteServerTasks" That alone would minimize the "complexity add" to the server object.


Share this post

Link to post
Share on other sites