An Interoperable, Data-Structure-Neutral Component for Mesh Query and Manipulation
|Title||An Interoperable, Data-Structure-Neutral Component for Mesh Query and Manipulation|
|Publication Type||Journal Article|
|Year of Publication||2010|
|Authors||Ollivier-Gooch, C, Diachin, LF, Shephard, MS, Tautges, TJ, Kraftcheck, JA, Leung, V, Luo, X, Miller, M|
|Journal||ACM Trans. Math. Soft.|
Much of the effort required to create a new simulation code goes into developing infrastructure for mesh data manipulation, adaptive refinement, design optimization, and so forth. This infrastructure is an obvious target for code re-use, except that implementations of these functionalities are typically tied to specific data structures. In this paper, we describe a software component---an abstract data model and programming interface---designed to provide low-level mesh query and manipulation support for meshing and solution algorithms. The component\'s data model provides a data abstraction, completely hiding all details of how mesh data is stored, while its interface defines how applications can interact with that data. Because the component has been carefully designed to be general-purpose and efficient, it provides a practical platform for implementing high-level mesh operations independently of the underlying mesh data structures. After describing the data model and interface, we provide several usage examples, each of which has been used successfully with multiple implementations of the interface functionality. The overhead due to accessing mesh data through the interface rather than directly accessing the underlying mesh data is shown to be acceptably small.