desmod.pool
¶
Pool class for modeling a container of resources.
A pool models a container of homogeneous resources, similar to
simpy.resources.Container
, but with additional events when the
container is empty or full. Resources are Pool.put()
or Pool.get()
to/from the pool in specified amounts. The pool’s resources may be modeled as
either discrete or continuous depending on whether the put/get amounts are
int or float.
-
class
desmod.pool.
Pool
(env: simpy.core.Environment, capacity: Union[int, float] = inf, init: Union[int, float] = 0, hard_cap: bool = False, name: Optional[str] = None)[source]¶ Simulation pool of discrete or continuous resources.
Pool is similar to
simpy.resources.Container
. It provides a simulation-aware container for managing a shared pool of resources. The resources can be either discrete objects (like apples) or continuous (like water).Resources are added and removed using
put()
andget()
.Parameters: - env – Simulation environment.
- capacity – Capacity of the pool; infinite by default.
- hard_cap – If specified, the pool overflows when the capacity is reached.
- init_level – Initial level of the pool.
- name – Optional name to associate with the queue.
-
capacity
= None¶ Capacity of the pool (maximum level).
-
level
= None¶ Current fill level of the pool.
-
remaining
¶ Remaining pool capacity.
-
is_empty
¶ Indicates whether the pool is empty.
-
is_full
¶ Indicates whether the pool is full.
-
class
desmod.pool.
PriorityPool
(env: simpy.core.Environment, capacity: Union[int, float] = inf, init: Union[int, float] = 0, hard_cap: bool = False, name: Optional[str] = None)[source]¶ Pool with prioritizied put() and get() requests.
A priority is provided with put() and get() requests. This priority determines the strict order in which requests are fulfilled. Requests of the same priority are serviced in strict FIFO order.
-
is_empty
¶ Indicates whether the pool is empty.
-
is_full
¶ Indicates whether the pool is full.
-
remaining
¶ Remaining pool capacity.
-
when_any
¶ alias of
PoolWhenAnyEvent
-
when_at_least
¶ alias of
PoolWhenAtLeastEvent
-
when_at_most
¶ alias of
PoolWhenAtMostEvent
-
when_empty
¶ alias of
PoolWhenEmptyEvent
-
when_full
¶ alias of
PoolWhenFullEvent
-
when_not_full
¶ alias of
PoolWhenNotFullEvent
-