Moving Resources in a
Model
Because 1) an element can only interact with Resource Something that has a limited supply (e.g., spare parts, fuel, skilled personnel, money) and is required in order for elements of the modeled system to carry out certain actions. Stores that are above it or at the same level within its Container An element that acts like a "box" or a "folder" into which other elements can be placed. It can be used to create hierarchical models. path, and 2) if a Resource Type has multiple Stores within a particular Container path, the element can only access the Store that is closest to it, situations might arise where you may want to move Resources between Stores.
For example, if you had a Local Store of "Fuel", as well as a Global Store of "Fuel", if the Local Store was exhausted and the Global Store still had available Resources, elements would not be able to access the Global Store in order to meet their requirements. As long as a Local Store exists that is available to the elements, this would be the only Store that could be accessed by those elements. To access the Global Store, therefore, you would need to move Resources from the Global Store to the Local Store.
This can be done, but you must manually program how and when this takes place. The recommended way to do this is to use a combination of a Triggered Event and a Discrete Change element An element that generates discrete change signals that can subsequently modify stock elements. to remove the Resource from one Store (e.g., the Global Store) and deposit it in the other Store (e.g., the Local Store).
The specific steps involved in doing so are as follows:
- Add a Triggered Event element at a location in the model such that it can access the Store from which you want to remove Resources (e.g., if you are moving from a Global Store to a Local Store, the Triggered Event element should be above the scope The portion of a model from which an element's output can be referenced. You cannot reference an element in a different scope unless that output is specifically exposed. of the Local Store).
- The Triggered Event
element should have a Spend (Discrete) Resource Requirement that pulls Resources
from the first Resource Store Stockpiles or places where a Resource (e.g., parts, personnel) is stored or located when not being used. Resource Stores can be thought of as having physical locations in the system you are modeling. The can be global or local (associated with a Container).:
- Add a Discrete Change
element that is triggered by the Triggered Event. This element could be
located either at the same location as the Triggered Event or at the location of
the Store to which the Resources are being moved. The key point is that the
Value for the Discrete Change should be the same as the Quantity that was
specified for the Resource Requirement for the Triggered Event:
- Within the Store to which
the Resource is being moved, specify a Discrete Addition that is the output from
the Discrete Change element:
A view of this structure is shown below:
Note: You cannot send (add) Resources to an inactive Container. If the Container is inactive, the Addition will be ignored.
Note: If the process of moving the Resource takes time, you could represent this by adding a Discrete Change Delay after the Discrete Change element.
- Controlling How Resources are Allocated Amongst Competing Requirements
- Elements That Can Interact With Resources
- Generating Resources
- Interacting with Resources
- Moving Resources in a Model
- Referencing Resource Availability and Use in Input Expressions
- Specifying a Resource Interaction for a Trigger
- Specifying Resources for a Conditional Container
- Specifying Resources for a Discrete Change Delay
- Specifying Resources for a Triggered Event
- Specifying Resources for an Event Delay