An efficient distributed mesh data structure is needed to support parallel adaptive analysis since it strongly influences the overall performance of adaptive mesh-based simulations. In addition to the general mesh-based operations, such as mesh entity creation/deletion, adjacency and geometric classification, iterators, arbitrary attachable data to mesh entities, etc., the distributed mesh data structure must support (i) efficient communication between entities duplicated over multiple processors, (ii) migration of mesh entities between processors, and (iii) dynamic load balancing. Issues associated with supporting parallel adaptive analysis on unstructured meshes include dynamic mesh load balancing techniques, and data structure and algorithms for parallel mesh adaptation.
Figure 1. PUMI Components
The Parallel Unstructured Mesh Infrastructure (PUMI) is an unstructured, distributed mesh data management system that is capable of handling general non-manifold models and effectively supporting automated adaptive analysis. PUMI supports a full range of operations on unstructured meshes on massively parallel computers consisiting of five libraries:
- PCU for phased message passing and thread management
- GMI for geometric model interface
- MDS for unstructured mesh representation
- APF_Mesh for partition model and distributed mesh management
- APF_Field for field management
The PUMI provides a core capability used in all the automated adaptive simulation software developed at RPI’s Scientific Computation Research Center which is currently being used on projects sponsored by the DOE, NSF, Army, NASA, IBM and several companies.
Figure 2. Distributed Mesh: a torus with four circular holes adapted using PUMI and MeshAdapt. The left is the initial mesh and the right is an adapted mesh with two spherical shocks. Different colors represent different process.