Abstract
Simulation programs frequently need a large amount of input data. Code dealing with reading input data and initializing data structures can be very tedious to write, especially if the data are to be defined in graphical interfaces. When using general-purpose frameworks, the idea is that the application code should be short, but this is often difficult because managing input may still require a huge effort. Hence, a tool for managing input data is needed such that the application programmer can quickly put together pieces of code that handle all aspects of supplying data to the program. A tool was implemented to address these challenges, and the result is a package called DataPool, which can greatly simplify the creation of user interfaces in Python programs. DataPool is a configurable Python package and tool for managing and controlling input data in simulation programs. DataPool can only handle input for a set of parameters. It cannot be used to create interactive drawings, advanced widgets, or fancy layout of a GUI. Nonetheless, DataPool may use these elements to let the user adjust a large number of physical and numerical parameters by offering a fancy layout and interactivity in simulation programs where it is necessary. This is achieved by using the available interfaces to DataPool, as well as developing new interfaces.
The motivation for this master thesis was to find a way of increasing the efficiency and usability when performing computational simulations, by extending and equipping the GUI module of the package DataPool with a highly visual, easy-to-use and powerful user interface. The angling of a possible solution was set on realizing this with the use of Python web frameworks. The thesis investigates the feasibility of obtaining a satisfying solution abiding loose coupling, extendability and being generic in a framework-based implementation. The starting point of evaluated Python web frameworks is Django. Other framework for Python like TurboGears was also up for evaluation and compared and reflected with the former. The thesis makes an in-depth investigation and evaluation of the Django framework. The result is the user interface DataPool Web. A web-based menu system designed to present the internal tree structure defined through the DataPool package in the most usable and effective way. It focuses on user interaction, practical functions and visual communication in order to make the use of DataPool package easy and time saving. The interface has the ability to present large amounts of data in an effective and lucid manner for the user.
Keywords: computational science, scientific computing, Django, Python, TurboGears, simulation, visualization, web, user interface