A networked PDE solving environment

Mo Mu

Abstract

PDE.Mart is a problem solving environment (PSE) for solving partial differential equations (PDEs) on computer networks. PDE.Mart consists of a web browser enabled graphical user interface (GUI), a server system (PDE Server) for building computational engines and providing the PDE solution services, and a distributed library (LIB).

The GUI provides a variety of functionality for users to easily and efficiently browse information, specify PDE problems, select solution methods, build solvers, control the computation, visualization, analysis, and I/O, etc. The implementation of the GUI is a combination of different network technologies including JAVA, CGI and HTML, depending on the invoke (interactive or batch) modes as well as network security and efficiency considerations. The core part of the GUI -- the Interactive PDE GUI -- is a Java applet. It consists of Domain Editor, PDE Editor, Mesh Editor, Discretization Editor, Solver Editor, and Solution Analyzer.

The PDE Server is a Java application running on the PDE.Mart host server. It communicates with the instances of the Interactive PDE GUI running on client machines in the client-server protocal via Java sockets. For each socket connection, the PDE Server creates a computational session for the client by the Engine Builder which takes the user's input from the GUI; creates and manipulates its domain object, PDE object, mesh object, discrete system object, and solution object; and sends the feedback to the corresponding client. The Engine Builder consists of Domain Creator, PDE Creator, Mesh Generator, Discretizer, and Solver. The computational engine is object-oriented, multi-threaded, and distributed. Each software part is viewed as an encapsulated object. High level distributed and parallel computing is realized through multiple threads and network sockets. There is, in fact, an intermediate interface between the GUI and Engine. It is a textual-based high level language mapped from the interactive GUI. The corresponding program file can be used to save and retrieve the status of the current GUI session for future work. Advanced users may also directly program on this level.

The LIB contains the supporting computational and utility software parts which may be local or remote, may be implemented in JAVA or other native languages such as C, C++, or FORTRAN. The LIB has a JAVA interface to the CP, a C/C++interface for the native methods in the JAVA interface, as well as a FORTRAN interface for the C++ implementation of the JAVA native methods corresponding to the FORTRAN codes. Inside the LIB are a collection of JAVA, C/C++, FORTRAN codes that are either self-developed or ported from existing softwares with wrappers to encapsulate the local information and convert data structures. For the sake of efficiency, most of the computationally intensive software parts are implemented in native languages, and only the drive routines are wrapped and interfaced with CP through JAVA NATIVE INTERFACE (JNI).

PDE.Mart is an E-encyclopedia. Besides a PDE solving environment with powerful computing engines for both numerical and symbolic computation, it also provides comprehensive information related to PDE classification, mathematical and physical properties, useful links and search engines to related websites, solvers and remote servers.

As part of PDE.Mart, we have also developed a tool, WebInterfacer, for automatically generating a web browser enabled network interface for software developers to provide form based services for using their softwares on their servers. Furthermore, the WebInterfacer system can be easily extended for generating other types of network interfaces.

The PDE.Mart project is led by Mo Mu at Hong Kong University of Science and Technology. One of our missions of the project is to investigate the impact and research issues of the rapidly growing network technologies in designing and developing networked PSEs for scientific and engineering applications.