Advertisement

Engineering with Computers

, Volume 22, Issue 2, pp 75–93 | Cite as

Embarrassingly parallel mesh refinement by edge subdivision

  • David C. ThompsonEmail author
  • Philippe P. Pébay
Original Article

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.

Keywords

Adaptive tetrahedral tessellation Parallel mesh refinement Streaming subdivision Symmetric groups 

Notes

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.

References

  1. 1.
    Bloomenthal J, Ferguson K (1995) Polygonization of non-manifold implicit surfaces. Comput Graph, 29(Annual Conference Series):309–316Google Scholar
  2. 2.
    Chung AJ, Field AJ (2000) A simple recursive tessellator for adaptive surface triangulation. J Graph Tools 5(3):1–9Google Scholar
  3. 3.
    Ciarlet PG (1991) Handbook of numerical analysis, vol 2. North Holland, Amsterdam, pp 17–352Google Scholar
  4. 4.
    Frey PJ, George P-L (2000) Mesh generation. Hermes Science Publishing, OxfordzbMATHGoogle Scholar
  5. 5.
    Henderson A (1995) The ParaView guide. Kitware, Inc.Google Scholar
  6. 6.
    Hungerford TW (1997) Algebra. Graduate texts in mathematics. Springer, Berlin Heidelberg New YorkGoogle Scholar
  7. 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 BeachGoogle Scholar
  8. 8.
    Lawrence JD (1972) A catalog of special plane curves. Dover Publications, New YorkzbMATHGoogle Scholar
  9. 9.
    Lo SH (1998) 3d mesh refinement in compliance with a specified node-spacing function. Comput Mech 21:11–19CrossRefzbMATHGoogle Scholar
  10. 10.
    Moore D, Warren J (1991) Mesh displacement: an improved contouring method for trivariate data. Technical Report TR91-166, Rice University, SeptemberGoogle Scholar
  11. 11.
    Moreland KL (2004) Fast high accuracy volume rendering. PhD Thesis, University of New Mexico, JulyGoogle Scholar
  12. 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–1608Google Scholar
  13. 13.
    Pébay PP, Baker TJ (2003) Analysis of triangle quality measures. Math Comput 72(244):1817–1839CrossRefzbMATHGoogle Scholar
  14. 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–316Google Scholar
  15. 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–70Google Scholar
  16. 16.
    Schroeder W, Martin K, Lorensen B (1995) The visualization toolkit: an object-oriented approach to 3D graphics. Prentice Hall, Englewood CliffsGoogle Scholar
  17. 17.
    Thompson DC, Pébay PP (2004) Performance of a streaming mesh refinement algorithm. Sandia Report SAND2004-3858, Sandia National Laboratories, AugustGoogle Scholar
  18. 18.
    van Rossum G (1995) Python language reference manual. Network Theory Ltd, BristolGoogle Scholar
  19. 19.
    Velho L (1996) Simple and efficient polygonization of implicit surfaces. J Graph Tools 1(2):5–24Google Scholar

Copyright information

© Springer-Verlag London Limited 2006

Authors and Affiliations

  1. 1.Sandia National Laboratories, MS 9152LivermoreUSA

Personalised recommendations