On this page:
1.1 Routines Available in the Simulation Collection
1.2 The Simulation Collection is Free Software
1.3 Obtaining the Simulation Collection
1.4 No Warranty

1 Introduction

The Simulation Collection implements a hybrid discrete and continuous event simulation engine for developing simulation models in Racket (formerly known as PLT Scheme). The Simulation Collection:

The source code is distributed with the Simulation Collection and is licensed under the GNU Lesser General Public License, Version 3.0 [LGPL].

The motivation behind the Simulation Collection is to provide the simulation engine for developing knowledge-based simulation models in Racket. It is based on a knowledge-based simulation system originally written in Symbolics Common Lisp [Williams90] [Williams96]. This is not as much a port of the earlier work as it is a complete re-engineering of the system into Racket. In particular, it makes extensive use of continuations to provide a process-based approach to building simulation models. It also adds support for building continuous simulation models, which were not part of the original work.

The functionality and terminology of the simulation collection is similar to that found in SIMSCRIPT II.5. Some of the examples programs in this manual are based on examples from Building Simulation Models with SIMSCRIPT II.5 [Russell99] and Introduction to Combined Discrete-Continuous Simulation Using SIMSCRIPT II.5 [Fayek02]. The most important difference is that SIMSCRIPT II.5 is a simulation language while the simulation collection is written in and runs under an existing programming language, Racket. In this regard it is similar to Simulation in Python (SimPy), which is a simulation system that runs under the Python propgramming language—although SimPy was not a major source of inspiration for the simulation collection. Chapter 16 gives some examples of simulation models in both SimPy and the Simulation Collection for comparison.

1.1 Routines Available in the Simulation Collection

The Simulation Collection covers a range of functionality for developing and executing simulation models:

The use of these functions is described in this manual. Each chapter provides detailed definitions of the functions, with example code.

1.2 The Simulation Collection is Free Software

The Simulation Collection is free software—this means that anyone is free to use it and redistribute it in other free programs. The simulation collection is not in the public domain—it is copyrighted and there are conditions on its distribution. Specifically, the simulation collection is distributed under the GNU Lesser General Public License, Version 3. A copy of the LGPL is provided with the software.

1.3 Obtaining the Simulation Collection

The preferred method for obtaining the Simulation Collection is via PLaneT, Racket’s centralized package distribution system. The PLaneT identifier for the simulation collection is (planet williams/simulation/simulation) or, if you are using any of the graphical features, (planet williams/simulation/simulation-with-graphics)either will download the entire Simulation Collection. See Chapter 2 for an example.

The source code is maintained on the Schematics project website and Subversion repository at SourceForge.

Note that Version 4.0 and higher of the Simulation Collection requires Racket Version 5.0 or higher.

1.4 No Warranty

The Simulation Collection is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is your responsibility to validate the behavior of the software and their accuracy using the source code provided. See the GNU Lesser General Public License, Version 3 [LGPL] for more details.