Home News People Research Study Search

Institute for Computing Systems Architecture

[These pages have been moved here from the deprecated Department of Computer Science website (www.dcs.ed.ac.uk/home/hase/simjava/). If any of the links don't work from here, they should still work from the old site.]


What is simjava?

SimJava is a discrete event, process oriented simulation package. It is an API that augments Java with building blocks for defining and running simulations. The original SimJava was based on HASE++, a C++ simulation library. HASE++ was in turn based on Jade's SIM++. Simjava comes with some animation facilities.

The approach to simulating systems adopted by SimJava is similar to other process based simulation packages. Each system is considered to be a set of interacting processes or entities as they are referred to in SimJava. These entities are connected together by ports and communicate with each other by passing events. A central system class controls all the threads, advances the simulation time, and delivers the events. The progress of the simulation is recorded through trace messages produced by the entities and saved in a file.

As of version 2.0, SimJava has been augmented with considerable statistical and reporting support. The modeller has the ability to add detailed statistical measurements to the simulation's entities and perform output analysis to test the quality of the collected data. Furthermore much effort has gone into the automation of all possible tasks allowing the modeller to focus on the pure modelling aspects of the simulation. Automated tasks range from seeding the random number generators used in the simulation, to producing detailed and interactive graphs.

While developing Simjava2.0, we took a great care in implementing a well-defined pseudo random number generator and a set of classes to deal with commonly used discrete and continuous distributions. This package (eduni.distributions) is now available alone and can be used with any versions of Simjava or even without simjava. It only requires a JDK 1.1-compatible JVM.

A simulation layout


Here is a complete tutorial for Simjava2. The full Simjava2 API documentation generated by javadoc is available.

There are also two additional tutorials about simanim and simdiag and a design document:

The Simjava 1.2 API documentation is still available :

Look at some examples to see what is possible with Simjava 1.2.

Simjava publications

Some extensions/projects which use Simjava

Related work

Below are listed related works regarding simulation languages, packages and tools:

Rainbow separator

Institute for Computing Systems Architecture, School of Informatics, University of Edinburgh

Home : Research : Groups : Hase 

Please contact our webadmin with any comments or changes.
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh.