An Interoperable, Data-Structure-Neutral Component for Mesh Query and Manipulation

  • Authors:
  • Carl Ollivier-Gooch;Lori Diachin;Mark S. Shephard;Timothy Tautges;Jason Kraftcheck;Vitus Leung;Xiaojuan Luo;Mark Miller

  • Affiliations:
  • University Of British Columbia;Lawrence Livermore National Laboratory;Rensselaer Polytechnic Institute;Argonne National Laboratory;University Of Wisconsin;Sandia National Laboratory;Rensselaer Polytechnic Institute;Lawrence Livermore National Laboratory

  • Venue:
  • ACM Transactions on Mathematical Software (TOMS)
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 reuse, except that implementations of these functionalities are typically tied to specific data structures. In this article, 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.