Source
Overview and Key Concepts
The source is used to create the flow items that travel through a model. Each source creates one class of flow item and can then assign properties such as labels or color to the flow item it creates. Sources can create flow item per an inter-arrival rate, per a scheduled arrival list, or simply from a defined arrival sequence.
The source is a fixed resource, although it does not receive flow items. Instead it creates the flow items and releases them. For that reason, it has no input section in its Flow properties.
The source can operate in one of three possible modes:
- Inter-Arrivaltime Mode: In inter-arrivaltime mode, the source uses its inter-arrivaltime function. This function's return value is the time to wait till the next arrival of a flow item. The source waits this amount of time, then creates a flow item and releases it. Once the flow item has exited, it calls the inter-arrivaltime function again and repeats the cycle. Note that the inter-arrivaltime is defined as the time between the exit of one item and arrival of the next item, not as the time between the arrival of one item and the arrival of the next item. If you would like to make the inter-arrivaltime be defined as the true time between arrivals, then use a downstream queue with a large capacity to make sure that the source immediately sends on flow items when they are created. You can also specify whether the inter-arrivaltime should be executed for the first arrival, or if the first flow item should be created at time 0.
- Arrival Schedule Mode: In arrival schedule mode, the source follows a schedule defined by the user in the schedule table. Each row of the table specifies an arrival of flow item(s) at a given time in the simulation. For each arrival entry, you can specify the arrival time, name, number of items to create, and additional item labels for that arrival. The arrival times should be ordered correctly in the schedule table, meaning each entry's arrival time should be greater than or equal to the previous entry's arrival time. If the source is set to repeat the schedule, then it will immediately loop back on the first arrival after the last arrival, causing the first entry's arrival to happen at the exact same time as the last entry's arrival. Note here that, when repeating the schedule, the first entry's arrival time only applies to the very first loop through the schedule. This allows you to have an initial arrival time that is executed once, but not repeated. If you would like the source to wait a given amount of time between the last arrival and the repeated first arrival, then add an extra entry to the end of the table, give it an arrival time greater than the previous entry's arrival time, but have 0 flow item arrive for that new entry.
- Arrival Sequence Mode: Arrival sequence mode is like arrival schedule mode, except that there is no time associated with the arrivals. The source will create the flow item for a given table row, and then as soon as the last flow item for that entry has exited, it will immediately go to the next row in the table. You can also repeat the arrival sequence.
Events
For information on events, see the Event Listening page.
The source uses the standard events that are common to all fixed resources. See Fixed Resources - Events for an explanation of these events.
The source has the following additional events:
On Creation
This event occurs once for each flow item at the time the item is created. The item is created inside the source, but without triggering the On Entry event. This is the first opportunity to get a reference to the created item. Any labels defined in columns in the Arrivals table have not yet been added to the item at this point. This event is immediately followed by the On Exit event unless the item's release is delayed by a downstream object.
It has the following parameters:
Event Parameter | Type | Explanation |
---|---|---|
Created Item | Object | A reference to the flow item created by the source. |
Row Number | int | The row number of the row in the Arrivals table where this arrival was defined. This will be 0 when using the Inter-Arrival Time Mode. |
Inter Arrival Time
This event only fires if the source's Arrival Style is set to Inter-Arrival Time. This event once for each flow item that is created. The inter arrival time event is fired immediately after the On Reset of the source and immediately before each On Exit event.
This event has no parameters.
The return value of the Inter-Arrival Time field is a number which is the model time until the next flow item is created.
States
For statistical purposes, the source will be in one of the following states at various points during a simulation run. The current state can be viewed by clicking on the object and then viewing the Statistics pane in Quick Properties.
Generating
There are no flow items in the source. It is waiting until its next creation event to create flow item.
Blocked
Flow items have been created and are waiting to leave the source.
Statistics
The source tracks the following statistics. These can be viewed by clicking on the object and then viewing the Statistics pane in Quick Properties.
Output
The total number of items that have exited the source.
Staytime
If the source is blocked and items cannot immediately exit the source when they are created, the time the item remains in the source before exiting will be recorded.
Properties
The source object has five tabs with various properties. The last four tabs are the standard tabs that are common to all fixed resources. For more information about the properties on those tabs, see:
Only the Source tab is unique to the source object. Certain properties will only appear based on what is selected in the Arrival Style menu. The properties on this tab will be explained in more detail in the following sections.
Arrival Style
This menu specifies the way that the source creates flow items. It has the following options:
- Inter-Arrival time - After a set period of time, the source creates one flow item. This repeats until the model is stopped.
- Arrival Schedule - The source follows a table that defines when flow items are created, how many there are, and what labels are assigned to them.
- Arrival Sequence - The source follows a table that defines what order flow items are created in. Flow items are created as fast as the source can move them downstream.
FlowItem Class
This is used to define what class of flow item the source will create. To view and edit flow item classes, select Go to Flowitem Bin in the drop down, or go to the open the Flowitem Bin using the Toolbox.
Inter-Arrival Time Properties
The following properties only appear when Inter-Arrival Time is selected as the Arrival Style:
- Arrival at time 0 - If this is checked, one flow item will be created at time 0. The next will be created at the end of the first inter-arrival time.
- Inter-Arrivaltime - A function that returns the amount of time the source should wait before creating the next flow item.
Arrival Schedule/Sequence Properties
The following properties only appear when Arrival Schedule or Arrival Sequence is selected as the Arrival Style:
- Repeat Schedule/Sequence - If this box is checked, the schedule or sequence will continually repeat itself until the model is stopped. In the case of a schedule, the arrival defined in row 1 will occur 0 seconds after the time defined for the arrival in the last row. This means that the arrival time for the very first row of the table is only used once for a given simulation. Note that this initial delay can be used as a warm-up period. If you would like to specify an interval time between the arrival time of the last row and the arrival time of the first for when repeated, then add another row to the end of the table and specify a quantity of 0.
- Arrivals - This specifies how many rows are in the arrival table.
- Labels - This specifies how many columns are in the arrival table. Additional columns will be added for labels and their initial values that will be added to the flow items when they are created.
- - This button adds the table as a row in the Excel Importer.
- ArrivalTime - This is the time in model time units that the arrival will occur (Arrival Schedule only).
- Item Name - Specifies the name of the flow item when it's created.
- Quantity - This number specifies how many flow item will be created during this arrival.
- Label Columns - These columns specify the labels that will be added to created flow item and their initial values.