Skip to main content
eScholarship
Open Access Publications from the University of California

TriMe++: Multi-threaded triangular meshing in two dimensions

Abstract

We present TRIME++, a multi-threaded software library designed for generating two-dimensional meshes for intricate geometric shapes using the Delaunay triangulation. Multi-threaded parallel computing is implemented throughout the meshing procedure, making it suitable for fast generation of large-scale meshes. Three iterative meshing algorithms are implemented: the DistMesh algorithm, the centroidal Voronoi diagram meshing, and a hybrid of the two. We compare the performance of the three meshing methods in TRIME++, and show that the hybrid method retains the advantages of the other two. The software library achieves significant parallel speedup when generating large-scale meshes containing between 104 to 107 points. TRIME++ can handle complicated geometries and generates adaptive meshes of high quality. Program summary: Program title: TRIME++ CPC Library link to program files: https://doi.org/10.17632/jxcsxtywtw.1 Developer's repository link: https://github.com/jiayinlu19960224/TriMe Licensing provisions: BSD 3-clause Programming language: C++ External routines/libraries: OpenMP, multi-threaded VORO++ Nature of problem: Multi-threaded geometry meshing in two dimension using the Delaunay triangulation Solution method: The TRIME++ library is built around several C++ classes that follows a structured meshing pipeline. During initialization, the shape_2d class reads the geometry input and generates a signed distance field using a grid-based data structure to represent the shape. The sizing_2d class subsequently produces adaptive element sizing and density fields for the mesh. It uses an adaptive quad-tree data structure, enabling efficient refinement of sizing and density values in areas with complex geometries. In the meshing procedure, the parallel_meshing_2d class iteratively improves point positions in the mesh. In each meshing iteration, the multi-threaded VORO++ library generates the Delaunay triangulation of the points. Users can select from three meshing algorithms, the DistMesh algorithm in the mesh_alg_2d_dm class, the centroidal Voronoi diagram meshing algorithm in the mesh_alg_2d_cvd class, and a hybrid method of the two in the mesh_alg_2d_hybrid class Throughout this meshing workflow, we use OpenMP for multi-threaded parallel computations.

Main Content
For improved accessibility of PDF content, download the file to your device.
of 0
Current View