Templates


Resource Pool Block

resourcePoolHelp

Description

The Resource Pool block accepts and maintains unseized resource entities. These resource entities can be seized later by other blocks. The Resource Pool block also processes resource requests from other blocks (a Seize block, for example) that can result in a distribution of unseized resource entities from the Resource Pool block.

A resource entity is considered unseized if it resides in a resource pool. Once it leaves a resource pool (and is not directly held by any other resource pool), it is treated as seized. Any newly created resource entity (generated outside a resource pool) is also considered unseized, even if it has not yet entered a Resource Pool block.

The Resource Pool block manages resource entities as objects. More than one type of resource entity can be maintained by an individual resource pool. The number of resource entity objects in a Resource Pool block can be monitored using its OutLength port. The Resource Pool block can also manage compatible resource entities with its merging/splitting units option.

To process a resource request from another block, the Resource Pool block chooses resource entities (from those it is maintaining) with enough units to satisfy the capacity needs of the request. Sometimes, resource entities with more units than are requested are chosen and distributed.

When the merging/splitting units option is enabled, the Resource Pool block can split resource units held in a resource entity currently in the resource pool into smaller units to satisfy a request and assign the smaller units to new resource entities. The new resource entities created by the Resource Pool block have the same entity type and attribute values as the existing resource entity, but are assigned the smaller resource units. The new resource entities are then distributed out of the resource pool. The original resource entity remains in the pool, even if its capacity reaches zero units after splitting. Similarly, when a resource entity enters the pool, its units can be merged into a compatible resource entity currently in the pool. The newly arrived resource entity is disposed and ceases to exist as an object in the simulation run. To be considered compatible resource entities, the resource entities must first be of the same entity type; in addition, you can specify optional key attribute fields to use for merging resources. Units merging between resource entities can take place only if their entity types and all of their key attribute fields, if any, match.

Fixed Ports

InEntity

Input entity port for entering resource entities.

OutEntity

Output entity port for exiting resource entities

OutLength

Output integer port for the number of resource entity objects currently in the pool.

Units Dialog Box Controls

Merge / split resource units among resource entities of same types

Turns on or off optional merging and splitting of resource units.

Key Entity Attribute Fields for Merging Units

Specifies optional key attribute fields to use during the units merging process when the merge/split units check box is checked.
There are two ways to specify key attribute fields for a resource entity type. For specific entity types, the key field table can be used to list key fields for any specific resource entity type. Each entry in the table contains a Resource Entity Type value and the corresponding Key Attribute Field. The latter lists either one attribute name or multiple comma-separated attribute names. You can create a new entry by clicking Add beside the table. Entries can be deleted from the table by selecting the entry rows in the table and then clicking Remove.
For any unspecified resource entity types, you can either choose the key attribute fields to be All adjustable fields or use No key fields. In the latter case, different resource entities are considered compatible for merging if and only if they are of the same resource entity type. In the former case, all adjustable attribute fields must match as well.

ResourceQueue Dialog Box Controls

Queueing Policy

Specifies the queueing policy for the queue used internally by the Resource Pool block. For more information, see the Queueing Policy control in the section Queue Block.

Candidates for Design of Experiments

Factors

QueueingPolicy (string)
For more information, see the Queueing Policy design-of-experiment factor in the section Queue Block.

Responses

None