Abstract
We have previously proposed a new technique for the communication-free adaptive refinement of tetrahedral meshes that works for all configurations. Implementations of the scheme must deal with all possible geometric configurations, which results in a large number of cases that in turn result in practical programming issues. In this article, we address this issue with a Python script that generates C++ code using the symmetric group \({\mathfrak{S}}_{4}\) acting over canonical topological and geometric configurations. We then analyze the performance of the technique by characterizing (a) mesh quality, (b) execution time and parallel speedup, and (c) traits of the algorithm that could affect quality or execution time differently for different meshes and different mesh refinement strategies. This article also details the method used to debug the many subdivision templates that the algorithm relies upon. Mesh quality is on par with other similar refinement schemes, and we suggest a more elaborate technique that may substantially improve mesh quality. We show that throughput on modern hardware can exceed 600,000 output tetrahedra per second per processor, and that the method is embarrassingly parallel—assuming the application has partitioned the input properly.
Similar content being viewed by others
Notes
In the online (color) version, all figures will display edges interior to a displayed face in red, edges interior to a tetrahedron in green, and others in black; black and red respectively turn into grey and pink when the edge is not in the foreground. In the print version, tetrahedra will be illustrated with unobscured bounding edges in bold lines, obscured bounding edges in narrow lines, and interior edges in dashed lines.
The average in our implementation is 5.6 tetrahedra per configuration.
Cases 0, 1, 2b, 3b and 6 are exempt from the longest-edge criterion because they have no ambiguous faces.
our slightly different implementation, as will be explained further, actually regroups the tetrahedra in 50 sets.
and, more generally, about groups acting over sets.
millions of tetrahedra
References
Bloomenthal J, Ferguson K (1995) Polygonization of non-manifold implicit surfaces. Comput Graph, 29(Annual Conference Series):309–316
Chung AJ, Field AJ (2000) A simple recursive tessellator for adaptive surface triangulation. J Graph Tools 5(3):1–9
Ciarlet PG (1991) Handbook of numerical analysis, vol 2. North Holland, Amsterdam, pp 17–352
Frey PJ, George P-L (2000) Mesh generation. Hermes Science Publishing, Oxford
Henderson A (1995) The ParaView guide. Kitware, Inc.
Hungerford TW (1997) Algebra. Graduate texts in mathematics. Springer, Berlin Heidelberg New York
Labbé P, Dompierre J, Vallet M-G, Guibault F, Trépanier J-Y (2001) A measure of the conformity of a mesh to an isotropic metric. In: Proceedings of the 10th international meshing roundtable, Newport Beach
Lawrence JD (1972) A catalog of special plane curves. Dover Publications, New York
Lo SH (1998) 3d mesh refinement in compliance with a specified node-spacing function. Comput Mech 21:11–19
Moore D, Warren J (1991) Mesh displacement: an improved contouring method for trivariate data. Technical Report TR91-166, Rice University, September
Moreland KL (2004) Fast high accuracy volume rendering. PhD Thesis, University of New Mexico, July
Oliker L, Biswas R, Gabow HN (2000) Parallel tetrahedral mesh adaptation with dynamic load balancing. Parallel Comput J, Special Issue on Graph Partitioning, pp 1583–1608
Pébay PP, Baker TJ (2003) Analysis of triangle quality measures. Math Comput 72(244):1817–1839
Pébay PP, Thompson DC (2005) Communication-free streaming mesh refinement. ASME Trans J Comput Inf Sci Eng, Special Issue on Mesh-Based Geometry 5(4):309–316
Ruprecht D, Müller H (1998) A scheme for edge-based adaptive tetrahedron subdivision. In: Hege H-C, Polthier K (eds) Mathematical visualization. Springer, Berlin Heidelberg New york, pp 61–70
Schroeder W, Martin K, Lorensen B (1995) The visualization toolkit: an object-oriented approach to 3D graphics. Prentice Hall, Englewood Cliffs
Thompson DC, Pébay PP (2004) Performance of a streaming mesh refinement algorithm. Sandia Report SAND2004-3858, Sandia National Laboratories, August
van Rossum G (1995) Python language reference manual. Network Theory Ltd, Bristol
Velho L (1996) Simple and efficient polygonization of implicit surfaces. J Graph Tools 1(2):5–24
Acknowledgements
David C. Thompson and Philippe P. Pébay were supported by the United States Department of Energy, Office of Defense Programs. Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed-Martin Company, for the United States Department of Energy under contract DE-AC04-94-AL85000.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Thompson, D.C., Pébay, P.P. Embarrassingly parallel mesh refinement by edge subdivision. Engineering with Computers 22, 75–93 (2006). https://doi.org/10.1007/s00366-006-0020-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00366-006-0020-3