GRAPE is a GRAphics Programming Environment to understand, explore and solve mathematical problems from differential geometry and continuum mechanis, two of the main research areas of the Sonderforschungsbereich 256 (SFB) for Nonlinear Partial Differential Equations at the Institut für Angewandte Mathematik at the University of Bonn. It has been developed by students and staff members of the SFB in Bonn since 1987, but now also receives much impetus from groups in Berlin at the Sonderforschungsbereich 288 of the TU-Berlin and in Freiburg at the Institut für Angewandte Mathematik.
Aims of the Software
GRAPE was planned as a graphics programming environment to simplify mathematical research done by researchers and students at the SFB. The mathematical problems from differential geometry and continuum mechanics at the SFB require complicated mathematical algorithms combined with three dimensional computer graphics. Mathematicians usually need more interactive control of their software than people in other areas of scientific visualization since not only scientific data have to be visualized but also new numerical algorithms are invented whose run-time behaviour must be visualized to ensure correctness.
GRAPE shall also serve as a library collecting algorithms and classes describing mathematical geometries and problems. People shall be able to base their work on the always growing set of existing tools. The library character shall also hold for the visualization tools. Technical aspects of the software include easy portability to other graphics workstations by writing the program in standard C and having a device independent graphics output.
Target Users
The original target users of GRAPE were mathematical researchers and students at the SFB 256 with problems from differential geometry and continuum mechanics. Quite soon GRAPE was also used by cooperating groups at other universities around the world. Today the software is used even by teachers and advanced pupils and is applied in other scientific areas.
Explanation of Content and Functions
GRAPE has an object-oriented kernel and a library of classes and methods for different geometric objects as well as mathematical descriptions and other technical entities. Each class contains a set of methods to which standard object-oriented mechanisms like inheritance etc. apply. Methods are sent to a class or an instance of a class as an ASCII-string in the following way:
GRAPE(class / instance, ''method-name'')(parm1, parm2, ...)
where additional parameters may be supplied. The class library consists of classes for triangulated geometric objects like curves, surfaces and volumes and subclasses of them with additional information like finite elements functions, refinement information, and functional descriptions. Objects can be combined like surfaces with a domain or with other maps existing on it. Nearly all static classes may be used in time-dependent classes to describe dynamic processes like deforming curves and surfaces, time-dependent vector fields on surfaces and in volumes, etc. Non-mathematical classes exist for graphics drivers and the viewer together with control elements such as buttons, rulers and spline editors for example.
The mathematical algorithms consist for example of tools for computing parametrized curves and surfaces, level set surfaces, minimal and H-surfaces generated using different algorithms, evolution of surfaces and of curves restricted to spatial surfaces, solution of ordinary and partial differential equations, operations on vector fields on surfaces and in volumes, operations on geometric objects in euclidean, spherical and hyperbolic space, evaluation of finite element functions on geometric objects and several other operations.
The viewer of GRAPE consists of a graphics window for graphics output and a control panel with different layers. Standard layers for lighting, surface properties, transformation operations and the data hierarchy manager are fixed. Eight optional layers may be designed by the user or by invoked interactive methods with control elements like buttons, rulers, spline editors, sliders and other objects.
Besides standard viewing facilities , visualization tools include various clipping algorithms, extraction of level lines and level surfaces, interactive refine and coarsen operations, reflection tools, calculating particle traces, display of functions on surfaces or volumes, vector fields, picking, grid editor and others. Most routines work cooperatively with time-dependent geometries.
Time-dependency is an advanced new concept in GRAPE, introduced by extending the former static system in a natural and consistent way. Nearly all classes describing geometric objects may be time-dependent, including for example adaptive triangulations in time-direction. Many algorithms are also time-dependent, for example reflection of a time-dependent surface at a time-dependent symmetry plane.
A project management is used to organize work and enhance modularity. For example, a user who has written a small surface builder package for GRAPE consisting of new classes, methods, buttons and rulers, may encapsulate this material inside a project and load/unload it to GRAPE during run-time.
A feature currently being developped is the network concept allowing distributed computing with remote objects and remote methods running on other computers, as well as interactively connect GRAPE with other programs to a network and exchange data.
User Interface
The user interface of GRAPE consists of two parts: a user may use and extend the class and method library to create C programs and/or invoke the interactive control panel with viewer and data hierarchy and work in this environment by applying methods. The control panel is adjustable to specific needs: new gadgets may be installed either by the programmer or by invoked interactive methods.
Intended Usage
GRAPE was intended for research use by mathematicians and students and educational use in classes and seminars to visualize advanced mathematics. People may write additional routines or use existing projects to attack problems and explain their possible solution to other people.
Results of Field Trials
GRAPE has proved its usefulness in world wide installations at different scientific sites and on computer types, in both research and education. See the accompanying list of external installations.
Educational Benefits
GRAPE has been used in many university courses to understand difficult problems with the accompanying help of pictures and animations. In a number of seminars students experimentally attack and solve problems by programming in GRAPE, later continue using the software in their own work.
Features Enabling Adaption
GRAPE is an open system and users may easily extend the system by writing new routines and create subclasses of system classes. The powerful object oriented system ensures that new subclasses keep the functionality of their superclass via an inheritance mechanism. A user may set up personal panels in the control panel of the viewer for specific projects. The device independence of graphics output and the source being written in standard C simplifies portability and adaption to other platforms.
Difference to Existing Programs
Dataflow packages like AVS, SGI Explorer and Data Explorer from IBM supply a module library and a network manager to interactively combine modules to a program. Data is modified at each module node and then passed over connections to other nodes. This concept is different to GRAPE's object oriented mechanism where a current object exists (i.e. the currently marked branch of the data hierarchy) to which methods are sent again and again until a problem is solved. GRAPE's technique is best when analysing a problem without prior knowledge which sequence of methods could solve it, while the "hardwired" AVS-style networks are best when work has to be done over and over again in a fixed order.
GRAPE does not compete with data viewers like Geomview since it offers a mathematical programming environment nor with formula packages like Mathematica which do not contain advanced three dimensional graphics.Bonn, 24. May 1994
Konrad Polthier