The adevs (A Discrete EVent system Simulator) library supports the construction of discrete event models based on a variant of the Parallel DEVS formalism. In addition to basic and network Parallel DEVS models, adevs includes support for dynamic structure models based on the Dynamic DEVS formalism. A basic familiarity with DEVS is assumed, and several good texts are available for those who are not already familiar with DEVS in one of its many forms (see www.acims.arizona.edu for an extensive collection of tutorials, research papers, and alternate implementations of the DEVS formalism). This manual provides a brief and (hopefully) intuitive introduction to DEVS, but the reader is strongly encouraged get a good book on the subject. The source code for examples included in this manual can be found examples directory.
This manual is a work in progress. The manual consists of the following (more or less finished) sections:
Building CellSpace models with adevs. The documentation for this section has not been updated. The glife and gfire examples provide working demonstrations. The glife example implements the Game of Life, and gfire is a simple fire spread model. OpenGL is required for both of these examples.
Building dynamic structure models with adevs. The documentation for this section has not been updated. However, adevs-2.x implements the dynamic structure formalism described in A. M. Uhrmacher's paper "Dynamic structures in modeling and simulation: a reflective approach", ACM Transactions on Modeling and Computer Simulation (TOMACS), Volume 11 , Issue 2, April 2001, pages 206-232. See the Network model API documentation. For an example, look at the Digraph and and CellSpace implementations that can be found in adevs_digraph.h and adevs_cellspace.h and the dyn_devs test cases.
Integrating adevs with other simulation and software systems. This section needs to be rewritten, but see the Simualtor API documentation (hopefully, this API is and easier to use and understand than the earlier versions).
Example code to
go along with these sections can be found in the
examples/checkout_line. Other examples
(largely devoid of supporting documentation) can also be found in the
examples directory.