Keywords

modelling, virtual experimentation, software kernels, distributed execution

Start Date

1-7-2006 12:00 AM

Abstract

Recently, a new kernel for modelling and virtual experimentation (i.e. any evaluation of a model) in the domain of water quality management was developed. This kernel was named “Tornado” and will be included in the new generation of the WEST product family, as well as in several other products (e.g. DHI’s MOUSE-TRAP) and projects. Most important issues during development were versatility and efficiency. This paper focuses mainly on the rationale for the new development, and the major features of the resulting kernel. It is argued that classical approaches (such as the adoption of MATLAB/SIMULINK, custom FORTRAN codes and/or domain-specific simulators) all have specific disadvantages, hence the need for a kernel that offers a compromise between versatility and efficiency. Tornado was developed in C++ using advanced language features, yielding a code base that offers fast execution, portability and increased readability. The software is composed of distinct environments for modelling and virtual experimentation. The modelling environment allows for the specification of complex ODE and DAE models in object-oriented, declarative languages such as MSL and Modelica. A model compiler translates these high-level models into efficient, flattened code. The experimentation environment allows for running atomic virtual experiments (such as simulations and steady-state analyses) as well as compound experiments (optimizations, scenario analyses, etc.) on the basis of flattened models. Important Tornado features are the fact that new virtual experiment types and numerical solvers can easily be added and loaded dynamically. Further, Tornado is available for several platforms and can be deployed in multiple ways: it can be used as a numerical back-end for graphical, command-line and web-based applications, and can be integrated in cluster and grid computing infrastructures. Several types of API’s are currently provided: C, C++, .NET and MEX. The persistency layer is XML-centric.

Share

COinS
 
Jul 1st, 12:00 AM

Tornado: A versatile and efficient modelling and virtual experimentation kernel for water quality systems

Recently, a new kernel for modelling and virtual experimentation (i.e. any evaluation of a model) in the domain of water quality management was developed. This kernel was named “Tornado” and will be included in the new generation of the WEST product family, as well as in several other products (e.g. DHI’s MOUSE-TRAP) and projects. Most important issues during development were versatility and efficiency. This paper focuses mainly on the rationale for the new development, and the major features of the resulting kernel. It is argued that classical approaches (such as the adoption of MATLAB/SIMULINK, custom FORTRAN codes and/or domain-specific simulators) all have specific disadvantages, hence the need for a kernel that offers a compromise between versatility and efficiency. Tornado was developed in C++ using advanced language features, yielding a code base that offers fast execution, portability and increased readability. The software is composed of distinct environments for modelling and virtual experimentation. The modelling environment allows for the specification of complex ODE and DAE models in object-oriented, declarative languages such as MSL and Modelica. A model compiler translates these high-level models into efficient, flattened code. The experimentation environment allows for running atomic virtual experiments (such as simulations and steady-state analyses) as well as compound experiments (optimizations, scenario analyses, etc.) on the basis of flattened models. Important Tornado features are the fact that new virtual experiment types and numerical solvers can easily be added and loaded dynamically. Further, Tornado is available for several platforms and can be deployed in multiple ways: it can be used as a numerical back-end for graphical, command-line and web-based applications, and can be integrated in cluster and grid computing infrastructures. Several types of API’s are currently provided: C, C++, .NET and MEX. The persistency layer is XML-centric.