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.
Hybrid system simulation. The only documentation for this section is in the API documentation and the two examples bouncing_ball and mixed_model. Documentation is in the works, and will be made available when it is ready. Adventurous persons can probably work things out from the implementations in adevs_dess.h and adevs_rk4.h.
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.
Question and comments about this software can be sent to its maintainer, Jim Nutaro, at nutarojj@ornl.gov