6.2 The ViennaMOS Project

The FLOSS-based ViennaMOS project [8] provides an interactive simulation platform applying CBSE (Section 3.3) as well as utilizing LCSD-based libraries (Section 3.4) in combination with a modular GUI and modern visualization methods. The modular concepts enabled by the CBSE approach are extended to the GUI as each module offers its own specific end user interface. By using these approaches ViennaMOS tackles the discussed challenges for an interactive simulation framework (Section 6.1).

The framework’s code base benefits from the extensive functionality provided by the VTK library [76] for the visualization backend and the Qt library [64] for the frontend. The design - especially with respect to the visualization capabilities and the modular GUI - is significantly influenced by the FLOSS-based visualization software ParaView [63].

ViennaMOS is composed of four essential parts, those being the data communication layer, the GUI, the module system, and the visualization facility represented by the so-called multiview mechanism, providing access to three-dimensional rendering and two-dimensional chart visualization backends (Figure 6.4). Overall, the four key parts tackle the requirements and challenges introduced by implementing an interactive simulation framework (Section 6.1).


pict


Figure 6.4: The ViennaMOS general software design; The module system allows interfacing with reusable, exchangeable, and expandable modules, using a unified interface. Data communication between modules is realized with a central data storage. A flexible and modular GUI provides access to the individual modules as well as to the visualization mechanism. The latter is based on the so-called multiview facility, enabling access to an arbitrary combination of three-dimensional rendering and two-dimensional chart visualization backends.


The following sections give a detailed overview of ViennaMOS.

Section 6.2.1 discusses the data communication layer based on a central data storage. Section 6.2.2 introduces the three-dimensional rendering facility. Section 6.2.3 depicts the two-dimensional chart visualization ability. Section 6.2.4 describes the multiview mechanism, providing arbitrary combinations of visualization windows. Section 6.2.5 discusses the module system, in particular the interface. Section 6.2.6 characterizes the main GUI of ViennaMOS. Section 6.2.7 gives two application examples, by discussing a device generator and a device simulator module and their interplay.

  6.2.1 Data Communication
  6.2.2 Three-Dimensional Render Visualization
  6.2.3 Two-Dimensional Chart Visualization
  6.2.4 Multiview
  6.2.5 Module System
  6.2.6 Graphical User Interface
  6.2.7 Examples
   Device Generation Module
   Device Simulation Module