MeshCleaner: A Generic and Straightforward Algorithm for Cleaning Finite Element Meshes

Mesh cleaning is the procedure of removing duplicate nodes, sequencing the indices of remaining nodes, and then updating the mesh connectivity for a topologically invalid Finite Element mesh. To the best of our knowledge, there has been no previously reported work specifically focused on the cleaning of large Finite Element meshes. In this paper we specifically present a generic and straightforward algorithm, MeshCleaner, for cleaning large Finite Element meshes. The presented mesh cleaning algorithm is composed of (1) the stage of compacting and reordering nodes and (2) the stage of updating mesh topology. The basic ideas for performing the above two stages efficiently both in sequential and in parallel are introduced. Furthermore, one serial and two parallel implementations of the algorithm MeshCleaner are developed on multi-core CPU and/or many-core GPU. To evaluate the performance of our algorithm, three groups of experimental tests are conducted. Experimental results indicate that the algorithm MeshCleaner is capable of cleaning large meshes very efficiently, both in sequential and in parallel. The presented mesh cleaning algorithm MeshCleaner is generic, simple, and practical.

[1]  Gerassimos Barlas The Thrust template library , 2015 .

[2]  Hang Si,et al.  TetGen, a Delaunay-Based Quality Tetrahedral Mesh Generator , 2015, ACM Trans. Math. Softw..

[3]  Joaquim B. Cavalcante Neto,et al.  Parallel generation of meshes with cracks using binary spatial decomposition , 2016, Engineering with Computers.

[4]  Houman Borouchaki,et al.  Parallel meshing of surfaces represented by collections of connected regions , 2017, Adv. Eng. Softw..

[5]  Gang Mei,et al.  Impact of data layouts on the efficiency of GPU-accelerated IDW interpolation , 2016, SpringerPlus.

[6]  Mark S. Shephard,et al.  Parallel mesh adaptation for high-order finite element methods with curved element geometry , 2014, Engineering with Computers.

[7]  Glaucio H. Paulino,et al.  Massively parallel adaptive mesh refinement and coarsening for dynamic fracture simulations , 2015, Engineering with Computers.

[8]  Claudio Schepke,et al.  Online Mesh Refinement for Parallel Atmospheric Models , 2012, International Journal of Parallel Programming.

[9]  Yasin Yilmaz,et al.  Using sequential NETGEN as a component for a parallel mesh generator , 2015, Adv. Eng. Softw..

[10]  Pradeep Dubey,et al.  Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort , 2010, SIGMOD Conference.

[11]  Yao Zhang,et al.  Scan primitives for GPU computing , 2007, GH '07.

[12]  A. Oliva,et al.  Parallel adaptive mesh refinement for large-eddy simulations of turbulent flows , 2015 .

[13]  Salvatore Cuomo,et al.  3D Data Denoising via Nonlocal Means Filter by Using Parallel GPU Strategies , 2014, Comput. Math. Methods Medicine.

[14]  Suzanne M. Shontz,et al.  A parallel log-barrier method for mesh quality improvement and untangling , 2014, Engineering with Computers.

[15]  Salvatore Cuomo,et al.  3D Non-Local Means denoising via multi-GPU , 2013, 2013 Federated Conference on Computer Science and Information Systems.

[16]  Can Özturan,et al.  Parallel Triangular Mesh Refinement by Longest Edge Bisection , 2015, SIAM J. Sci. Comput..

[17]  S. H. Lo,et al.  3D Delaunay triangulation of 1 billion points on a PC , 2015 .

[18]  Andrey N. Chernikov,et al.  Two-level locality-aware parallel Delaunay image-to-mesh conversion , 2016, Parallel Comput..

[19]  Yao Zheng,et al.  Tetrahedral mesh improvement by shell transformation , 2017, Engineering with Computers.

[20]  Vitaly Osipov,et al.  GPU sample sort , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[21]  Nathan Bell,et al.  Thrust: A Productivity-Oriented Library for CUDA , 2012 .

[22]  Surin Kittitornkun,et al.  Parallel Partition and Merge QuickSort (PPMQSort) on Multicore CPUs , 2016, The Journal of Supercomputing.

[23]  Luiz Fernando Martha,et al.  IBHM: index-based data structures for 2D and 3D hybrid meshes , 2017, Engineering with Computers.

[24]  Seren Soner,et al.  Generating Multibillion Element Unstructured Meshes on Distributed Memory Parallel Machines , 2015, Sci. Program..

[25]  Nengxiong Xu,et al.  Wire frame: A reliable approach to build sealed engineering geological models , 2009, Comput. Geosci..

[26]  Jorge González-Domínguez,et al.  Compute Unified Device Architecture , 2018 .

[27]  Nengxiong Xu,et al.  Building a three dimensional sealed geological model to use in numerical stress analysis software: A case study for a dam site , 2011 .

[28]  John C. Tipper,et al.  A Generic Paradigm for Accelerating Laplacian-Based Mesh Smoothing on the GPU , 2014 .

[29]  Michael Garland,et al.  Designing efficient sorting algorithms for manycore GPUs , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.