Version 1.1 (March 2004)
jDisco is a Java framewok for combined discrete and continuous simulation. The framework is designed to facilitate description and simulation of systems involving both discrete and continuous phenomena.
A system is conceived of as a collection of processes which undergo active and inactive phases and whose actions and interactions comprise the system's behaviour.
A distinction is made between two types of processes, namely discrete processes (class Process) and continuous processes (class Continuous). Discrete processes have instantaneous active phases, called events, and cause discrete changes in the state of the system. In contrast, continuous processes undergo active phases during time intervals and cause continuous state changes.
Any process may be created, activated, deactivated or removed from the system at any time. However, jDisco permits more than co-existence of separate processes. It allows processes to communicate with one another and influence one another in a completely general way. Any process may reference and modify any variable in any other process and may affect delimiting and sequencing of active phases.
jDisco makes possible simulation of systems having piecewise continuous state variables (class Variable). The discontinuities, the events, can be time-determined (using hold, activate etc.) as well as state-determined (using waitUntil).
jDisco has been described in the report
"jDisco - a Java framework for combined discrete and continuous simulation".
DATALOGISKE SKRIFTER (Writings on Computer Science), 2001,
The code can be downloaded in two formats
- JDISCO-1.1.tgz (gzipped tar file, approximately 470 KB)
- JDISCO-1.1.sitx (Stuffit archive, approximately 400 KB)
If a UNIX machine is used, download the software in the first format. Next execute the following UNIX command:
If a MacOS or a Windows machine is used, download the software in the second format. Next unstuff it with Stuffit Expander (freeware available at http://www.aladdinsys.com).
The code is distributed for research use. The author reserves all rights to the code.
Changes in version 1.1
Improved support for multiple simulations (instead of creating one simulation at a time, it is possible to generate a number of consecutive simulations, varying a particular parameter over a range of values). When a simulation ends, all processes terminate automatically and release their threads.