Swapping
Mesh swapping improves the quality of unstructured meshes by
changing the local topology of the mesh. This technique is
especially helpful in three dimensions, where the combination of
swapping and shape improvement has been shown to dramatically improve
mesh quality and simulation efficiency. As part of SciDAC-1, a
state-of-the-art swapping algorithm (part of the GRUMMP meshing
suite) was re-implemented using the mesh and geometry interfaces. This
swapping software is already in use in one widely-distributed SciDAC
meshing code (GRUMMP) with over 500 downloads per year for applications
in fluid and solid mechanics, medicine, and astrophysics.
In two dimensions, face swapping chooses the best diagonal for the quadrilateral formed by two neighboring triangles. Pre-defined quality criteria include the Delaunay criterion and the maximum angle criterion.
<>In three dimensions, the swapping service performs both face swapping and edge swapping. The former reconfigures tetrahedra that share a common face, while the latter reconfigures all tetrahedra incident on a single edge. The canonical face swapping case is exchanging two tetrahedra that share a face with three tetrahedra, as shown in the top left part of Figure 1. The inverse swap, from three to two tetrahedra, is also possible. In addition, we allow reconfiguration of two tets to two (T22 case in the figure); in this case, the two shaded faces must be co-planar, and swapping decisions reduce to choosing the best diagonal for the coplanar quadrilateral. If two pairs of tetrahedra in the interior of the mesh share a pair of coplanar faces, this swap is also permitted; in this case, two T22 configurations are back-to-back in the mesh. In addition to these swappable configurations, there are a number of unswappable cases, some of which are illustrated in the bottom of Figure 1. >Edge swapping is a more complicated procedure, replacing N tetrahedra incident a single edge by a new set of 2N-4 tetrahedra. In the example of Figure 2, the edge TB is perpendicular to the screen. The five tetrahedra originally incident on it (01TB, 12TB, 23TB, 34TB, 40TB) are replaced by six new tetrahedra, two for each of the triangles of the (non-planar) triangulation of polygon 01234: 012T, 024T, 234T, 021B, 042B, and 324B.
The challenge with edge swapping is that the number of possible
configurations
grows rapidly with the number of tetrahedra incident on the edge to
be removed, as seen in the table below. In practice, the number of
successful 7-for-10 swaps is very small, so the swapping service does
not explore
possible swaps for more complex initial configurations.
| Tets before | 3 | 4 | 5 | 6 | 7 |
| Tets after | 2 | 4 | 6 | 8 | 10 |
| Possible configurations |
1 |
2 |
5 |
14 |
42 |
| Tets times configs |
2 | 8 |
30 |
112 |
420 |
| Unique tets |
2 | 8 |
20 |
40 |
70 |
Both face and edge swapping support pre-defined quality measures
that enforce the Delaunay criterion, maximize the minimum sine of
dihedral angles (recommended) or minimize
the maximum dihedral angle. User-defined quality measures are also
supported.