next up previous contents index
Next: Difference to Existing Programs Up: Introduction Previous: Introduction

What is GRAPE?

GRAPE is intended to serve as a general programming and viewing environment. It benefits from its interactive approach and its standard-C based yet object-oriented structure. It 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. 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 or time-dependent vector fields on surfaces and in volumes. Non-mathematical classes exist for graphics drivers and the viewer together with its control elements such as buttons, rulers and spline editors.

The mathematical algorithms include tools to compute parametric curves and surfaces, level set surfaces, minimal and H-surfaces or the evolution of surfaces and of curves restricted to spatial surfaces, as well as tools to solve ordinary and partial differential equations, to work with vector fields on surfaces and in volumes, geometric objects in Euclidean, spherical and hyperbolic space or to evaluate finite element functions on geometric objects.

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

In addition to standard viewing facilities GRAPE offers various clipping algorithms, extraction of level lines and level surfaces, interactive refine and coarsen operations, reflection tools, as well as to calculate particle traces, to display functions on surfaces or volumes or to edit grids. Most routines work cooperatively with time-dependent geometries.

Time-dependency is a particular feature of 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. Also many algorithms are 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 or unload it to GRAPE during run-time.


next up previous contents index
Next: Difference to Existing Programs Up: Introduction Previous: Introduction

SFB 256 Universität Bonn and IAM Universität Freiburg

Copyright © by the Sonderforschungsbereich 256 at the Institut für Angewandte Mathematik, Universität Bonn.