PythonDEVS-BBL   
 

PythonDEVS-BBL

Welcome to the homepage of PythonDEVS-BBL (Building Block Library)!

This library contains a set of DEVS building blocks that fit together like puzzle pieces, all of them running on top of the Python(P)DEVS kernel. They propose a lot of functionality as a black box. With them, anyone can make models quickly, efficiently and fluently. No need to focus on the individual components anymore, allowing users to give 100% of their attention to the system they're modelling!

This page is meant to provide a general overview on the library and does not contain a full documentation of the building blocks. The exact documentation is located in docs/_build/html in the repository of the code (which also contains the code for the BBL). Seeing as the idea behind most components is rooted somewhere in the literature study, it's recommended to take a look there for more information behind the reasoning of certain building blocks.

Library Structure

Updated set of Building Blocks

Based on some ideas taken from the old set of building blocks, combined with some brand new ideas based on existing tools, a new set of building blocks came to be. Below, an overview of these blocks (and their categories are given). Note that these blocks do not allow for parallelism.

PythonDEVS-BBL

GPSS2DEVS

  • Generators
    • Constant Generator
      Generates a stream of constant numbers.
    • Function Generator
      Generates a stream of numbers, following a function.
    • Table Generator
      Generates a stream of numbers w.r.t. a given table.
    • Single Fire
      Generates a single value once.
    • Bulk Generator
      Turns a number into a stream of items.
    • Random Number Generator (RNG)
      Generates a randomized stream of numbers.
    • Random Delay Generator (RDG)
      Generates numbers w.r.t. an arithmetic sequence whose inter-arrival times are randomized.
  • Queues
    • Simple Queue
      Waiting line without automatic dequeues.
    • Queue Tracker
      Keeps track of the contents of a waiting line.
    • Queue
      Waiting line with automatic dequeues.
    • Retain
      Remembers an item until the next arrival.
    • Advance
      Advances an item w.r.t. its predefined delay.
  • Collectors
    • Collector
      Obtains the sum, sum of squares, mean, variance and standard deviation of a stream of numbers.
    • Estimate Collector
      Estimates the minimum, maximum, median, Q1 and Q3 values of a stream of numbers.
    • Table Collector
      Collects all inputted values.
    • Counter
      Counts the amount of items that passed through.
  • Mathematics
    • Adder
      Adds all inputs together.
    • Multiplier
      Multiplies all inputs.
    • Equation
      Executes a function on a set of inputs.
    • Differentiator
      Computes the differential of a set of inputs.
    • Integrator
      Integrates a stream of inputs.
    • Random
      Associates a random value to an input.
  • Routing
    • Finish
      Endpoint of a model.
    • Halt
      Endpoint of a model, with the possibility of halting a simulation.
    • Choose Input
      Picks one of multiple inputs.
    • Choose Output
      Chooses one of multiple outputs.
    • Pick
      Keeps track of busy/available paths.
    • Guard
      Guards a critical section from too many accesses.
    • Gate
      Blocks or grants access to a submodel.
    • Delayer
      Delays an item w.r.t. its value.
    • Timer
      Delays an item w.r.t. a predefined delay.
    • Sync
      Syncs multiple messages together.
  • Transformers
    • Transformer
      Transforms an item into another.
    • Lookup Table
      Transforms an item into another w.r.t. a table.
    • Pack
      Groups items together into a Package.
    • Unpack
      Extracts the contents of a Package.
  • Input/Output
    • Logger
      Logs an input w.r.t. the syslog protocol.
    • Emergency
      Logger with severity 0.
    • Alert
      Logger with severity 1.
    • Critical
      Logger with severity 2.
    • Error
      Logger with severity 3.
    • Warn
      Logger with severity 4.
    • Notice
      Logger with severity 5.
    • Info
      Logger with severity 6.
    • Debug
      Logger with severity 7.
    • File Writer
      Writes an input to a file.
    • File Reader
      Reads a file.
    • Listener
      Listens to an external value.
  • Building Blocks
    • ASSIGN
    • MARK
    • SEIZE
    • RELEASE
    • PREEMPT
    • RETURN
    • ENTER
    • LEAVE
    • QUEUE
    • DEPART
    • TABULATE
    • LINK
    • UNLINK
    • ADVANCE
  • Functional Blocks
    • Facility
    • Storage
    • Chain
    • Queue
    • Table
  • Control Blocks
    • Hold
    • Controller

Old Idea

The original idea of the library was mainly based on ExtendSim. This was later altered w.r.t. other tools for discrete-event modeling (both DEVS and non-DEVS). Components highlighted in khaki were uncertain blocks (i.e. they might have been added, or they might not). This list is mainly for historical purposes. The updated set of building blocks is given above.
  • Generic
    • Retain
    • Exit
    • Item Updater
    • Item Attribute Getter
    • Item Attribute Setter
    • Activity Service
    • Shift
    • Gate
    • Preemptive Process
  • Generators
    • Standard Generators
      • Constant Generator
      • Input Data Generator
      • Function Generator
      • Incrementor
      • Item Generator
    • Random Number Generators
      • LCG
      • CMRG
  • Queues
    • Queue (FIFO, LIFO) [with possibility for reneging]
    • Priority Queue
    • Delayer
    • Load Balancer
    • Joiner
    • Holding
    • Prioritizer
    • Scheduler
    • Holding Tank
  • Mathematics
    • Computational Components
      • Adder
      • Subtractor
      • Multiplier
      • Divider
      • Modulo Divider
      • Negator
      • Inverter
      • Powerfunction
      • Function
      • Differentiator
      • Integrator
    • Stochastic Components
      • BoxData
        (Min, Max, Mean, Variance, Median, Q1-distance, Q3-distance)
      • Cumulative Sum
      • Cumulative Product
      • Counter
      • Threshold
      • Limiter
    • Logical Components
      • Logical Operators
        • AND
        • OR
        • NOT
        • NAND
        • NOR
        • XAND
        • XOR
      • Decision
      • Select Input
      • Select Output
      • T Flip-Flop
      • RS NOR Latch
  • I/O Components
    • Plotters
      • Line Plot
      • Histogram
      • Boxplot
      • Scatter Plot
      • FFT (Fast Fourier Transform)
      • Bar Chart
      • Pie Chart
    • Table Input
    • Table Output
    • Stop
    • Sound
    • Prompt
    • Message
    • Write
    • Read
  • Manufacturing
    • Stock
    • Labor Pool
    • Resource Pool
    • Batch
    • Unbatch
    • Functional Batch
    • Functional Unbatch
    • Conveyor Belt
    • Conveyor Carousel
    • Crane
    • Transporter
    • Worker
  • Communication
    • Node
    • Message Bus
    • Slave
    • Master
    • Client-Server
    • Firewall
    • Switch Node
    • ...
  • Physics
    • Duration
    • Speed
    • Distance
    • Converter
  • Flow
    • Bucket
    • Pipe
    • Flow Splitter
    • Flow Joiner
Maintained by Randy Paredis.