ETHZ_Logo RAMSES_Logo_Right    RAMSES    RAMSES_Logo_Left Systems Ecology   

ModelWorks

An Interactive Simulation Environment for Personal Computers and Workstations

1 - What Is ModelWorks?

ModelWorks is a modeling and simulation environment programed in Modula-2 (Wirth 1985, 1988) specifically designed to be run interactively on modern workstations and personal computers (Fischlin 1991 PDF, Fischlin et al. 1994 PDF).

ModelWorks offers a handy user interface allowing for efficient alterations of model and simulation run parameter values and other specifications interesting for executing simulation experiments. Moreover it supports modular modelling by featuring a coupling mechanism between submodels and an unrestricted number of so-called model objects, such as state variables, model parameters etc.. This allows to build models of any complexity in a well structured way. The software imposes no limits on the number of models, nor model objects, nor on the structure of the model equations or the model architecture; limits are solely determined by the physical memory and execution speed of the used computer. Yet, rigorous mathematical formalisms are available and provide a solid basis, despite the pitfalls lurking because of the complexity of the system structure.

2 - Features

Several features make ModelWorks unique:

  • Support of modular modeling.

    With ModelWorks you can formulate and integrate models of the three standard model formalisms, i.e. systems of coupled ordinary differential equations (DESS - Differential Equation System Specification), difference equations (SQM - Sequential Machines), or continuous-time discrete event systems (DEVS - Discrete Event System Specification). Hence models of a single or mixed type in any combination, such as continuous time or discrete time alone, or continuous and discrete time mixed with each other can be easily implemented. Each model can have its own integration routine, functioning on a different time step, depending on precision and efficiency requirements. Furthermore it is possible to declare or remove dynamically models and model objects in the middle of a simulation run (models can generate new models with a structure depending on the obtained simulation results and can be added to the simulation experiment without having to interrupt the ongoing runs etc.).

  • Open system architecture.

    This allows you to extend ModelWorks freely in any way. ModelWorks does not feature a simulation language, but offers the means to formulate models and to control simulation experiments within a high level programming language. The hereby gained access to the power of an ordinary programming language is particularly important if you work with non-standard model formalisms, e.g. recursively defined model equations, or if you want to customize the display of simulation results, or if you wish to perform a particular sensitivity analysis or parameter identification at the end of a modelling and simulation study. With ModelWorks your investments are protected, since you will not have to switch to completely new simulation tools in order to accomplish such tasks.

  • Based on the Dialog Machine.

    The Dialog Machine, a user dialog controlling software layer between application and system software, substantially facilitates the programming of interactive programs on modern computers and guarantees a consistent user interface. Thanks to the open system architecture of ModelWorks and the underlying Dialog Machine, you can freely customize the user interface by extending the provided standard user interface or by completely replacing the latter with your own, satisfying your specific needs. This may facilitate the controlling of simulation experiments or the programming of special purpose animations, or allow you to quickly transform a research model into a demo version with a simple and robust user interface, which may then be used by practitioners and extension services. Thanks to the Dialog Machine, a port of ModelWorks to a new machine where the Dialog Machine is available is relatively simple. Currently it is possible to port - without having to change the source code at all - large computer models developed on either a Mac, an IBM PC, or a Unix machine among all three platforms.

  • Sister application Easy ModelWorks.

    Easy ModelWorks is a simple tool for full interactive modeling of DESS and SQM systems. It provides only a small subset of the functionality of the full-fledged ModelWorks, but the latter is often only needed by the sophisticated simulationist. Since Easy ModelWorks models can be transformed into an ordinary ModelWorks model with a single command, Easy ModelWorks provides also an easy and efficient entry into the world of ModelWorks.

Further features:

  • Simple models can be realized with a minimum programming knowledge. Simulations are written in Modula-2 so that sophisticated programers may combine the advantages of a structured high-level programming language with maximum flexibility in the formulation of the model systems.
  • Arbitrary number of simultaneously integrated continuous, discrete time, discrete event and mixed models of any order limited only by the available memory and the modular formulation of the model systems.
  • Interactive simulation environment with graphical user interface. Windows, menu technique, buttons and pointing device (mouse) allow the simulationist to interactively
    • change settings, such as integration method or step length, model parameters, initial values of state variables, attributes of curves etc. within predefined ranges,
    • reset settings to given default values, e.g. as initially defined,
    • control the display and monitoring of simulation results (ModelWork manages output onto a table, a text-file with well-defined syntax or into a graph-window containing 2D line- or phase space-charts),
    • execute simple or predefined structured simulations,
    • print graphs, copy them to the clipboard, or store them onto file in RTF interchange format,
    • and many more...
  • Modeler's so-called client interface offers over 70 procedures for
    • declaration and modification of models and model-objects, as well as control of
    • global parameters and project description,
    • simulation run conditions,
    • display and monitoring,
    • preferences and simulation-environment modes,
    • program-state and structured simulations.
  • Additional optional modules available for
    • generation of random numbers,
    • data input from text-files,
    • calendar functions to work with julian days,
    • separate integration routine,
    • table functions,
    • coordinated access to graph output window,
    • post simulation analysis.

3 - Formal Interface

To learn about the formal interface, notably all functions of ModelWorks see:

See also the ModelWorks Examples.

4 - Availability

ModelWorks is freeware (courtesy ETH Zurich).

It comes as a part of the RAMSES modeling and simulation environment.

Download it for:

  • Mac Classic   (part of the RAMSES package)
  • Windows   (part of the Dialog Machine, ModelWorks and Auxiliary Library for Windows package)
  • Mac OS X   (part of the RASS-OSX package)
  • Sun Solaris  (part of the RASS-Sun package)

For information on the needed Modula-2 development environments for the various supported computer platforms see here. For hardware requirements see here.

For the latest information, not contained in the manual included in the RAMSES package, see On ModelWorks PDF.

5 - On the Development History of ModelWorks

ModelWorks has been designed originally by Markus Ulrich and Andreas Fischlin, the later versions by Andreas Fischlin, Olivier Roth, and Dimitrios Gyalistras, all from ETH Zurich.

Thanks to the thorough testing and using by Thomas Nemecek many important improvements and extensions of ModelWorks became possible. Later several other Ph.D. students and many scientific collaborators, in particular Frank Thommen, Jürg Thöny, Heike Lischke, Harald Bugmann, Daniel Perruchoud, and Thomas J. Löffler, made partly extensive use of ModelWorks and helped to enhance the implementation and further its quality.

Together with the Dialog Machine the first versions of ModelWorks have been developed during the pilot project CELTIA (Computer Aided Explorative Learning and Teaching with Interactive Animated simulation) at the Project-Centre IDA (Informatik dient allen) at the Institute of Automatic Control Theory, ETH Zurich under the auspices of Prof. Walter Schaufelberger (Abschiedsvorlesung).

The later versions of ModelWorks have been developed during a research project funded by two grants from the Swiss National Science Foundation and the Systems Ecology Group of the ETH Zurich under the direction of Andreas Fischlin.

The two IBM PC implementations (under GEM respectively Windows) have been developed by Daniel Keller (Project-Centre IDA), Jürg Thöny, Thomas Wegmüller, and Fabrizio Giorgetta who all made ports of ModelWorks from the Macintosh to the IBM PC and back several times. ModelWorks can be easily ported to every machine on which the Dialog Machine is available, since it is simply a Dialog Machine program.

6 - Cited References and Further Reading

Fischlin, A. (1991). Interactive Modeling and Simulation of Environmental Systems on Working Stations. In: Möller, D.P.F. & Richter, O. (eds.), Analysis of dynamic systems in medicine, biology, and ecology. Informatik-Fachberichte 275: 131-145. PDF doi: 10.1007/978-3-642-77020-3_17

Fischlin, A., Gyalistras, D., Roth, O., Ulrich, M., Thöny, J. & Nemecek, T., Bugmann, H. & Thommen, F. (1994). Model Works - an interactive simulation environment for personal computers and workstations. Systems Ecology Report No. 14, ETH Zurich, Switzerland, 324pp. PDF

Schaufelberger, W., 1990. Simulieren mit Modula-2: Die Simulationsumgebung ModelWorks. In: Fasol, K.H. & Diekmann, K. (eds.). Simulation in der Regelungstechnik. Springer-Verlag, Berlin a.o., Germany, 509pp., e-ISBN 978-3-642-84261-0:182-194. doi: 10.1007/978-3-642-84261-0_8

Wirth, N. (1985). Programing in Modula-2. Springer, Berlin a.o. 3rd. corr. edition. 202 pp. doi: 10.1007/978-3-642-96878-5

Wirth, N. (1988). Programing in Modula-2. Springer, Berlin a.o. 4th. edition. 182pp. doi: 10.1007/978-3-642-83565-0


See also the Systems Ecology Publications and Reports.


  RAMSES@env.ethz.ch Last modified 2/12/23 [Top of page]   

Modula-2 website ring
List all       |       <<  Prev       |       Next  >>       |       Join