Unstructured Mesh Generation

Geometric decomposition, or mesh generation, can be automated much more easily for unstructured meshes than for structured meshes. This is a tremendous advantage to users of unstructured mesh methods; however, writing unstructured mesh generation software is a challenging task. ANSLab personnel have developed and support a mesh generation package for Generation and Refinement of Unstructured Mixed-element Meshes in Parallel (GRUMMP). GRUMMP consists of programs that generate and improve unstructured meshes in two and three dimensions from curved boundary data. In two dimensions, curved boundaries are represented by arcs and splines. In three dimensions, curved geometry is specified by a surface triangulation, which is then splined; an OpenCasCADe backend is currently being tested. Output meshes are isotropic and guaranteed to have well-shaped cells, with provably good control over cell size and grading.

While this package does not yet have all the features necessary to be a successful industrial tool, it is already in public release on the Internet with over 7000 downloads to over 60 countries. For more information about GRUMMP's features, or to download a copy, see the GRUMMP homepage.

There are at least three areas in which GRUMMP will be significantly improved in the short term.

  • Anisotropic meshes

    GRUMMP currently generates only isotropic meshes. Many physical problems --- high Reynolds number viscous flow is a notorious example --- have diffusive terms that are dominant in small parts of the problem domain and negligible elsewhere. In diffusion dominated regions, the physical behavior of these systems is highly anisotropic. Correctly and efficiently capturing such phenomena numerically requires a mesh that is also highly anisotropic.

    Extending GRUMMP to generate anisotropic meshes in two dimensions should not be difficult; in fact, a rough implementation has been done. In three dimensions, however, the problem is substantially more difficult; the current state of the art in this area, while often useful in practice, is not entirely satisfactory, particularly for closely-spaced objects. Anisotropic meshing projects could be undertaken as part of either a MASc or PhD, and would be especially interesting in conjunction with work on solving some anisotropic problem on the meshes generated.

  • Parallelization

    Despite the name, GRUMMP is still a serial code. Design has been completed for the parallel extension of the underlying mesh database and the algorithms built on top of it; implementation is underway. This work is being done in conjunction with the US-based Interoperable Tools for Advanced Petascale Simulation project, which has defined standard API's for both serial and parallel mesh access and manipulation.

  • Meshes with Curved Entities

    Modern high-order accurate schemes --- whether finite-volume or finite-element based --- require a high-order accurate representation of the domain boundary. This obviously requires curving the mesh faces and edges on the boundary. But more is required for anisotropic meshes: interior faces and edges must also be curved to prevent intersection of faces in anisotropic regions near curved boundaries. This is an area where the techniques to apply are reasonably well understood; we "just" need to implement this.