Components of a Generic,
Extensible Meshing Toolkit
Carl Ollivier-Gooch
Abstract
At high levels, Delaunay insertion, advancing front, and oct/quadtree-based
unstructured mesh generation methods are vastly different. However,
these approaches share many common low-level data structures and
operations. In my talk, I will describe the infrastructure design
goals of the
GRUMMP
package.
GRUMMP's data structures are designed to allow extensibility
to mixed-element meshing (the first `M' in GRUMMP). This goal
implies that cell and face data structures must have both general
and specific instances. I will discuss the pros and cons of this
design at all levels in the data structure heirarchy.
Low level meshing operations include vertex insertion, proximity
checking, vertex smoothing, local mesh reconnection, input/output,
and interaction with boundary data; I will focus on the last two
of these. GRUMMP uses a flexible system which currently allows
I/O in essentially any ASCII file format. Interaction with boundary
data is critical for meshing from curved boundaries; GRUMMP uses
a generic geometric interface to isolate the mesher from the geometry,
to the extent that the mesher does not even need to know the type
of geometry data associated with a particular patch.