Skip to main content

Embarrassingly parallel mesh refinement by edge subdivision


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.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23


  1. 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.

  2. The average in our implementation is 5.6 tetrahedra per configuration.

  3. Cases 0, 1, 2b, 3b and 6 are exempt from the longest-edge criterion because they have no ambiguous faces.

  4. our slightly different implementation, as will be explained further, actually regroups the tetrahedra in 50 sets.

  5. and, more generally, about groups acting over sets.


  7. millions of tetrahedra



  1. Bloomenthal J, Ferguson K (1995) Polygonization of non-manifold implicit surfaces. Comput Graph, 29(Annual Conference Series):309–316

  2. Chung AJ, Field AJ (2000) A simple recursive tessellator for adaptive surface triangulation. J Graph Tools 5(3):1–9

    Google Scholar 

  3. Ciarlet PG (1991) Handbook of numerical analysis, vol 2. North Holland, Amsterdam, pp 17–352

  4. Frey PJ, George P-L (2000) Mesh generation. Hermes Science Publishing, Oxford

    MATH  Google Scholar 

  5. Henderson A (1995) The ParaView guide. Kitware, Inc.

  6. Hungerford TW (1997) Algebra. Graduate texts in mathematics. Springer, Berlin Heidelberg New York

    Google Scholar 

  7. 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

  8. Lawrence JD (1972) A catalog of special plane curves. Dover Publications, New York

    MATH  Google Scholar 

  9. Lo SH (1998) 3d mesh refinement in compliance with a specified node-spacing function. Comput Mech 21:11–19

    Article  MATH  Google Scholar 

  10. Moore D, Warren J (1991) Mesh displacement: an improved contouring method for trivariate data. Technical Report TR91-166, Rice University, September

  11. Moreland KL (2004) Fast high accuracy volume rendering. PhD Thesis, University of New Mexico, July

  12. 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

  13. Pébay PP, Baker TJ (2003) Analysis of triangle quality measures. Math Comput 72(244):1817–1839

    Article  MATH  Google Scholar 

  14. 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

    Google Scholar 

  15. 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

    Google Scholar 

  16. Schroeder W, Martin K, Lorensen B (1995) The visualization toolkit: an object-oriented approach to 3D graphics. Prentice Hall, Englewood Cliffs

    Google Scholar 

  17. Thompson DC, Pébay PP (2004) Performance of a streaming mesh refinement algorithm. Sandia Report SAND2004-3858, Sandia National Laboratories, August

  18. van Rossum G (1995) Python language reference manual. Network Theory Ltd, Bristol

    Google Scholar 

  19. Velho L (1996) Simple and efficient polygonization of implicit surfaces. J Graph Tools 1(2):5–24

    Google Scholar 

Download references


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

Correspondence to David C. Thompson.

Rights and permissions

Reprints 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).

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: