Welcome
Welcome to the React.NET Discrete Event Simulation Framework. React.NET is a open source library for programmatically developing discrete event simulations implemented on top of the Microsoft® .NET Framework.
Site Map
- Quick Start
- Provides an overview of the discrete event simulation concepts and classes as they are implemented by React.NET. It also includes a step-by-step tutorial on building a simple simulation.
- Examples
- Provides a number of example simulations with detailed descriptions.
- How-Tos
- Provides code samples for accomplishing a variety of simulation tasks using React.NET.
- Documentation
- Provides access to the React.NET programming guide and API reference.
What Is It?
React.NET is a library for programmatically constructing discrete event simulations. The library contains classes for many of the most common simulation objects, including:
- Processes.
- Various non-uniform random number generators.
- Blocking objects such as:
- Resources
- Conditions
- Bounded buffers
- Consumables
- Classes for gathering run-time simulation data.
- Monitors
- Recorders
- Classes for collecting/computing statistics.
To create a React.NET simulation, you create a runnable .NET program. This means that React.NET is not a graphically-based system for building simulations.
Features
The following are some of the attributes and features of the React.NET Discrete Event Simulation Framework.
- Written entirely in the C# programming language.
- Makes entensive use of features in .NET v2.0 including:
- Generics
- Iterators
- Avoids Microsoft-specific (e.g. Win32 classes) in hopes to eventually run on the Mono framework.
- Powerful and flexible simulation API.
- Simple simulations can be created using only a few of the React.NET classes. There's no need to learn a large API just as you're getting started.
- Intuitive, process-based simulation methodology.
- Includes nine (9) common non-uniform random number generators (distributions). This list will continue to grow.
- A Simulation class provides all context for a single simulation run. Multiple simulations can be executed in parallel in separate threads.
- Provides an easy-to-use means for monitoring property changes during a simulation run and aggregating this data into meaningful statistics.
Requirements
To build the React.NET library or a simulation that uses React.NET requires:
- The Microsoft® .NET Framework SDK v2.0 or higher.
- A means to edit textual source files.
- Familiarity with discrete event simulation concepts.
- Familiarity with programming in C# and the .NET Framework.
To run a simulation built with the React.NET library requires only the Microsoft .NET 2.0 runtime.
License
React.NET is licensed under the GNU General Public License (GPL), a copy of which is available at http://www.gnu.org/licenses/gpl.html.
Links
The following sites provide some good, introductory material on discrete event simulation.
- CS333 Lab A-3: Distributed Discrete Event Simulation
- Introduction to Discrete Event Simulation
- Inside Discrete Event Simulation Software
- What is Simulation? - Discrete Event Simulation
- Queuing Models and Discrete Event Simulation
The paper, Deadlock Detection and Resolution for Discrete Event Simulation: Multiple-Unit Seizes provides some good information about simulations that have tasks that perform multiple resource acquisitions (seizes).
If you're looking for a Python-based discrete simulation framework, you may want to check out the SimPy project.