Foreign System Integration A major focus of the //ELLPACK project was to develop a methodology for integrating both foreign solvers and entire PDE-solving systems into the //ELLPACK environment. The result of this effort has been the successful integration of several complete systems and many solvers, both sequential and parallel.
//ELLPACK provides the graphical user environment for specifying all input. Then, the MAXIMA symbolic processing software, which is an integral part of the //ELLPACK environment, provides the mechanism for transforming the //ELLPACK specification into the foreign system-specific input. This includes computing jacobians, generating fortran input routines, and other transformation processes. The interface library handles the processing of control parameters and file conversions.
The result of the integration process is that foreign systems are embedded in the //ELLPACK environment, and can be accessed from within the //ELLPACK environment in the same manner as the original //ELLPACK libraries modules which are the base componenets of our PDE-solving engine. The foreign system become a //ELLPACK triple module.
The integration of foreign solvers merely requires three conversion routines : a routine that converts the control parameters which have been specified from within the //ELLPACK environment, a conversion routine that supplies the matrix resulting from the //ELLPACK equation discretization, and finally, a routine that converts the solution to one of the //ELLPACK-readable formats. The foreign solver becomes a //ELLPACK solution module.
Foreign editors and tools have also been integrated into the //ELLPACK environment. These include tools for generating meshes, tools for visualizing the computed solution or performance data, editors for building domains, etc. The integration of these editors and tools generally requires file format conversion routines that take //ELLPACK standard descriptions of the object and convert them to a format required by the foreign editor or tool. Conversion routines also exist for taking foreign file formats and converting them back to the required //ELLPACK standard format.