An Open Framework for Unstructured Grid Generation

Traditionally, individual algorithm developers directly incorporate the requirements of their scheme into its resulting software implementation. While this is sufficient for basic execution, it severely limits the expandability and growth potential of the algorithm. An example of such a shortcoming is a fixed method of geometry access in a surface triangulation algorithm. By adopting a single description for the defining geometry, and embedding it within the implementation, the triangulation developer will fix, for all practical purposes, the form of geometry supported by the algorithm. A change to the method of geometry access requires knowledge of, and the ability to edit, the triangulation algorithm. The level of work required for such a change depends highly on the forethought and style of the initial incorporation. The approach advocated here, however, is to define a set of standard software interfaces for key elements of the unstructured grid generation process. In this example, the interface separates the specifics of the method for geometry access from those of the triangulation algorithm. As such, the triangulation algorithm is largely independent of the form of the underlying geometry. It accesses geometry solely through the interface and does so without regard for the method of implementation supporting the interface. Therefore, a given method of geometry access can be later modified, or replaced, as dictated by arising needs without directly impacting the triangulation algorithm itself. An open framework for the development of software applications in the field of unstructured numerical grid generation is presented. The goal of the framework is to define an Application Programming Interface that allows developers of grid generation software to seamlessly integrate alternative algorithms into their respective products. The presentation centers on decoupling the grid generation task into separate, largely independent component processes. The component processes are implemented following the guidelines of a standard software interface definition and can therefore be interchanged without the need to modify algorithm specifics. The approach contained herein provides for support of both legacy and emerging technology and is demonstrated through the description of a new unstructured grid generation package under development at the NASA Langley Research Center.