A Problem Solving Environment for Numerical Partial Differential Equations

R.L. Akers, P. Baffes, E. Kant, C. Randall, S. Steinberg, R.L Young

Date: July 18th (Thursday)
Time: 15:15-15:40
Abstract
SciNapse is a problem solving environment for numerically solving partial differential equations that is currently under commercial development. The main interface to the system is the "problem specification language". This language allows an initial-boundary value problem for a system of partial differential equations to be specified in terms of invariant differential operators or in a particular coordinate system. The region in which the differential equations hold is specified in terms of a union of rectangles in some coordinate system. This allow rather general regions apropriate for discretization using logically-rectangular grids. The methods for discretizing the differential equations and the boundary conditions can be specified by giving keywords for common methods or by giving detailed mathematical replacement rules, or some combination of both. In the case of finite-difference discretizations, simple ways exist for specifying grid staggering and the placement of the boundaries in the staggered grid.

The SciNapse system includes a template language for specifying algorithms. One typical use for templates is to specify the over-all time evolution in terms of a general method for taking individual time steps. Then the particular method for taking a time step can be chosen from a library of templates, e.g. Runge-Kutta-Fehlberg or Dormand-Prince integrators, or a new template may be written. If the method is implicit, then a solver may also be chosen from a library of solvers, e.g. preconditioned conjugate gradient or quasi-minimal residual, or a new solver template can be written. SciNapse has heuristics for choosing solvers, and many other features of the solution algorithm. The SciNapse system is implemented in Mathematica and the templates are executable Mathematica code, so they can easily be tested for correctness in Mathematica.

SciNapse is a knowledge-based program synthesis system implemented with objects, transformation rules, and a reasoning system. A great deal of knowledge engineering has gone into providing the system with extensive information about how to solve initial boundary value problems in an intelligent manner. The system starts with an abstract notion of what is needed to write a program recorded in its objects and starts filling in the details based on rules associated with the objects. Information may be given to SciNapse in files written by the user, from a simple terminal interface, or in a graphical user interface. When SciNapse realizes that it doesn't have a piece of information that it needs to specify a problem, it will ask the user for that information, typically by giving a menu of alternatives. Users can have the system use its own knowledge whenever possible or can request that they be asked to confirm system choices. If some information has already been given to SciNapse, then the reasoning system uses this to eliminate alternatives. Using constaints (hard and fast rules about legal options and combinations), heuristic rules of thumb for making decisions, and defaults, SciNapse can take much of the burden of writing a program off the user.

______________
__________________________________________

Previous page RISC SWP Linz Austria