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).
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.