Skip to main content

POLYLLA: polygonal meshing algorithm based on terminal-edge regions

Abstract

This paper presents an algorithm to generate a new kind of polygonal mesh obtained from triangulations. Each polygon is built from a terminal-edge region surrounded by edges that are not the longest-edge of any of the two triangles that share them. The algorithm is termed Polylla and is divided into three phases. The first phase consists of labeling each edge of the input triangulation according to its size; the second phase builds polygons (simple or not) from terminal-edges regions using the label system; and the third phase transforms each non simple polygon into simple ones. The final mesh contains polygons with convex and non convex shape. Since Voronoi-based meshes are currently the most used polygonal meshes, we compare some geometric properties of our meshes against constrained Voronoi meshes. Several experiments were run to compare the shape and size of polygons, the number of final mesh points and polygons. For the same input, Polylla meshes contain less polygons than Voronoi meshes and the algorithm is simpler and faster than the algorithm to generate constrained Voronoi meshes. Finally, we have validated Polylla meshes by solving the Laplace equation on an L-shaped domain using the virtual element method (VEM). We show that the numerical performance of the VEM using Polylla meshes and Voronoi meshes is similar.

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

Availability of data and materials

https://github.com/ssalinasfe/Polylla-Mesh.

Code availability

Not applicable https://github.com/ssalinasfe/Polylla-Mesh.

Notes

  1. A terminal-edge region is formed by all triangles whose longest-edge propagation path (Lepp) [4] share the same terminal-edge.

  2. https://github.com/ssalinasfe/Polylla-Mesh.

  3. https://www.bcn.cl/siit/mapas_vectoriales

  4. https://pypi.org/project/pyshp/

References

  1. Beirão da Veiga L, Brezzi F, Cangiani A, Manzini G, Marini L, Russo A (2013) Basic principles of virtual element methods. Math Models Methods Appl Sci 23(01):199–214

    MathSciNet  Article  Google Scholar 

  2. Beirão da Veiga L, Brezzi F, Marini LD (2013) Virtual elements for linear elasticity problems. SIAM J Numer Anal 51(2):794–812

    MathSciNet  Article  Google Scholar 

  3. Wriggers P, Aldakheel F, Hudobivnik B (2019) Application of the virtual element method in mechanics. Technical report, report number: ISSN 2196-3789. Leibniz Universität Hannover (January)

  4. Rivara MC (1997) New longest-edge algorithms for the refinement and/or improvement of unstructured triangulations. Int J Numer Methods Eng 40:3313–3324

    MathSciNet  Article  Google Scholar 

  5. Schlömer N (2021) pygalmesh: Python interface for CGAL’s meshing tools. https://doi.org/10.5281/zenodo.5564818. https://github.com/nschloe/pygalmesh. Accessed 30 Jan 2022

  6. Huisman O, de By R (2009) Principles of geographic information systems: an introductory textbook, p 258

  7. Johnson AE, Hebert M (1998) Control of polygonal mesh resolution for 3-D computer vision. Graph Models Image Process 60(4):261–285. https://doi.org/10.1006/gmip.1998.0474

    Article  Google Scholar 

  8. Ho-Le K (1988) Finite element mesh generation methods: a review and classification. Comput Aided Des 20(1):27–38

    Article  Google Scholar 

  9. Zhang YJ, Hughes TJR, Bajaj CL (2007) Automatic 3D mesh generation for a domain with multiple materials. In: IMR

  10. Cheng S-W, Dey TK, Shewchuk J, Sahni S (2013) Delaunay mesh generation. CRC Press Boca Raton

  11. Yan D-M, Wang W, Lévy B, Liu Y (2011) Efficient computation of clipped Voronoi diagram for mesh generation. Comput Aided Des. https://doi.org/10.1016/j.cad.2011.09.004

    Article  Google Scholar 

  12. Yan D-M, Wang K, Levy B, Alonso L (2011) Computing 2D periodic centroidal Voronoi tessellation. In: 2011 eighth international symposium on Voronoi diagrams in science and engineering, pp 177–184. https://doi.org/10.1109/ISVD.2011.31

  13. Talischi C, Paulino G, Pereira A, Menezes I (2012) Polymesher: a general-purpose mesh generator for polygonal elements written in matlab. Struct Multidiscip Optim 45(3):309–328

    MathSciNet  Article  Google Scholar 

  14. Löhner R (1996) Progress in grid generation via the advancing front technique. Eng Comput 12(3–4):186–210

    Article  Google Scholar 

  15. Schöberl J (1997) Netgen an advancing front 2D/3D-mesh generator based on abstract rules. Comput Vis Sci 1:41–52

    Article  Google Scholar 

  16. Bern M, Eppstein D, Gilbert J (1994) Provably good mesh generation. J Comput Syst Sci 48(3):384–409. https://doi.org/10.1016/S0022-0000(05)80059-5

    MathSciNet  Article  MATH  Google Scholar 

  17. Bommes D, Lévy B, Pietroni N, Puppo E, Silva C, Tarini M, Zorin D (2013) Quad-mesh generation and processing: a survey. In: Computer graphics forum. Wiley Online Library, vol 32, pp 51–76

  18. Liang X, Zhang YJ (2013) An octree-based dual contouring method for triangular and tetrahedral mesh generation with guaranteed angle range. Eng Comput 30:211–222

    Article  Google Scholar 

  19. Owen SJ, Staten ML, Canann SA, Saigal S (1999) Q-morph: an indirect approach to advancing front quad meshing. Int J Numer Methods Eng 44(9):1317–1340

    Article  Google Scholar 

  20. Ito Y, Nakahashi K (2002) Unstructured mesh generation for viscous flow computations. IMR 2002:367–377

    Google Scholar 

  21. Owen SJ (1998) A survey of unstructured mesh generation technology. IMR 239:267

    Google Scholar 

  22. Johnen A (2016) Indirect quadrangular mesh generation and validation of curved finite elements. Ph.D. thesis, Université de Liège, Liège, Belgique

  23. Lee CK, Lo SH (1994) A new scheme for the generation of a graded quadrilateral mesh. Comput Struct 52(5):847–857

    Article  Google Scholar 

  24. Remacle J-F, Lambrechts J, Seny B, Marchandise E, Johnen A, Geuzainet C (2012) Blossom-quad: a non-uniform quadrilateral mesh generator using a minimum-cost perfect-matching algorithm. Int J Numer Methods Eng 89(9):1102–1119

    MathSciNet  Article  Google Scholar 

  25. Merhof D, Grosso R, Tremel U, Greiner G (2007) Anisotropic quadrilateral mesh generation: an indirect approach. Adv Eng Softw 38(11/12):860–867

    Article  Google Scholar 

  26. Shewchuk JR (1996) Triangle: engineering a 2D quality mesh generator and Delaunay triangulator. In: Lin MC, Manocha D (eds) Applied computational geometry towards geometric engineering. Springer, Berlin, pp 203–222

    Chapter  Google Scholar 

  27. Si H (2019) An introduction to unstructured mesh generation methods and softwares for scientific computing. Course. 2019 International Summer School in Beihang University

  28. Barber CB, Dobkin DP, Huhdanpaa H (1996) The Quickhull algorithm for convex hulls. ACM Trans Math Softw 22(4):469–483

    MathSciNet  Article  Google Scholar 

  29. Yvinec M (2021) 2D triangulations. In: CGAL user and reference manual, 5.3.1 edn. CGAL Editorial Board, CGAL project. https://doc.cgal.org/5.3.1/Manual/packages.html#PkgTriangulation2. Accessed 23 Jan 2022

  30. Chew LP (1994) Constrained delaunay triangulation. Algorithmica 4:97–108

    MathSciNet  Article  Google Scholar 

  31. Canann SA, Tristano JR, Staten ML (1998) An approach to combined Laplacian and optimization-based smoothing for triangular, quadrilateral and quad-dominant meshes. In: 7th international meshing roundtable, pp 479–494

  32. Lee K-Y, Kim I-I, Cho D-Y, Kim T-w (2003) An algorithm for automatic 2D quadrilateral mesh generation with line constraints. Comput Aided Des 35(12):1055–1068

    Article  Google Scholar 

  33. Owen SJ, Staten ML, Canann SA, Saigal S (1998) Advancing front quadrilateral meshing using triangle transformations. In: Proceedings, 7th international meshing roundtable, vol 98, pp 409–428

  34. Jaillet F, Lobos C (2021) Fast Quadtree/Octree adaptive meshing and re-meshing with linear mixed elements. Eng Comput 1435–5663

  35. Perumal L (2018) A brief review on polygonal/polyhedral finite element methods. Math Probl Eng 2018:1–22

    MathSciNet  Article  Google Scholar 

  36. Chi H, Talischi C, Lopez-Pamies O, Paulino G (2015) Polygonal finite elements for finite elasticity. Int J Numer Methods Eng 101:305–328

    MathSciNet  Article  Google Scholar 

  37. Yan D-M, Wang W, Lévy B, Liu Y (2010) Efficient computation of 3D clipped Voronoi diagram. In: GMP, pp 269–282

  38. Ebeida MS, Mitchell SA (2012) Uniform random Voronoi meshes. In: Quadros WR (ed) Proceedings of the 20th international meshing roundtable, pp 273–290. Springer, Berlin

  39. Sieger D, Alliez P, Botsch M (2010) Optimizing Voronoi diagrams for polygonal finite element computations. In: Proceedings of the 19th international meshing roundtable, IMR 2010, October 3–6, 2010, Chattanooga, Tennessee, USA, pp 335–350

  40. Wachspress EL (1975) A rational finite element basis. Mathematics in science and engineering. Academic Press, New York

    MATH  Google Scholar 

  41. Sukumar N, Malsch EA (2006) Recent advances in the construction of polygonal finite element interpolants. Arch Comput Methods Eng 13(1):129–163

    MathSciNet  Article  Google Scholar 

  42. Tabarraei A, Sukumar N (2008) Extended finite element method on polygonal and quadtree meshes. Comput Methods Appl Mech Eng 197(5):425–438

    MathSciNet  Article  Google Scholar 

  43. Beirão da Veiga L, Lovadina C, Mora D (2015) A virtual element method for elastic and inelastic problems on polytope meshes. Comput Methods Appl Mech Eng 295:327–346

    MathSciNet  Article  Google Scholar 

  44. Cáceres E, Gatica GN, Sequeira FA (2017) A mixed virtual element method for the brinkman problem. Math Models Methods Appl Sci 27(04):707–743

    MathSciNet  Article  Google Scholar 

  45. Cáceres E, Gatica GN, Sequeira FA (2018) A mixed virtual element method for quasi-Newtonian stokes flows. SIAM J Numer Anal 56(1):317–343

    MathSciNet  Article  Google Scholar 

  46. Benedetto MF, Berrone S, Pieraccini S, Scialò S (2014) The virtual element method for discrete fracture network simulations. Comput Methods Appl Mech Eng 280:135–156

    MathSciNet  Article  Google Scholar 

  47. Wriggers P, Reddy BD, Rust WT, Hudobivnik B (2017) Efficient virtual element formulations for compressible and incompressible finite deformations. Comput Mech 60:253–268

    MathSciNet  Article  Google Scholar 

  48. Wriggers P, Hudobivnik B (2017) A low order virtual element formulation for finite elasto-plastic deformations. Comput Methods Appl Mech 327:459–477

    MathSciNet  Article  Google Scholar 

  49. Hussein A, Aldakheel F, Hudobivnik B, Wriggers P, Guidault P-A, Allix O (2019) A computational framework for brittle crack-propagation based on efficient virtual element method. Finite Elem Anal Des 159:15–32

    MathSciNet  Article  Google Scholar 

  50. Aldakheel F, Hudobivnik B, Wriggers P (2019) Virtual element formulation for phase-field modeling of ductile fracture. Int J Multiscale Comput Eng 17(2):181–200

    Article  Google Scholar 

  51. Park K, Chi H, Paulino GH (2019) On nonconvex meshes for elastodynamics using virtual element methods with explicit time integration. Comput Methods Appl Mech Eng 356:669–684

    MathSciNet  Article  Google Scholar 

  52. Chi H, da Veiga LB, Paulino GH (2017) Some basic formulations of the virtual element method (VEM) for finite deformations. Comput Methods Appl Mech Eng 318:148–192

    MathSciNet  Article  Google Scholar 

  53. Torres J, Hitschfeld N, Ruiz RO, Ortiz-Bernardin A (2020) Convex polygon packing based meshing algorithm for modeling of rock and porous media. In: Krzhizhanovskaya VV, Závodszky G, Lees MH, Dongarra JJ, Sloot PMA, Brissos S, Teixeira J (eds) Computational science—ICCS 2020. Springer, Cham, pp 257–269

    Chapter  Google Scholar 

  54. Alonso R, Ojeda J, Hitschfeld N, Hervías C, Campusano LE (2018) Delaunay based algorithm for finding polygonal voids in planar point sets. Astron Comput 22:48–62

    Article  Google Scholar 

  55. Ojeda J, Alonso R, Hitschfeld-Kahler N (2018) A new algorithm for finding polygonal voids in delaunay triangulations and its parallelization. In: The 34th European workshop on computational geometry, EuroCG, pp 349–354

  56. Hervías C, Hitschfeld-Kahler N, Campusano LE, Font G (2013) On finding large polygonal voids using Delaunay triangulation: the case of planar point sets. In: Proceedings of the 22nd international meshing roundtable, pp 275–292

  57. De Floriani L, Kobbelt L, Puppo E (2005) A survey on data structures for level-of-detail models. In: Dodgson NA, Floater MS, Sabin MA (eds) Advances in multiresolution for geometric modelling. Springer, Berlin, pp 49–74

    Chapter  Google Scholar 

  58. Boissonnat J-D, Devillers O, Pion S, Teillaud M, Yvinec M (2002) Triangulations in cgal. Comput Geom 22(1):5–19. 16th ACM symposium on computational geometry. https://doi.org/10.1016/S0925-7721(01)00054-2

  59. Turner R (2021) Deldir: Delaunay Triangulation and Dirichlet (Voronoi) Tessellation. R package version 0.2-10. https://CRAN.R-project.org/package=deldir. Accessed 30 Aug 2021

  60. Austral University of Chile: Patagón Supercomputer (2021). https://patagon.uach.cl. Accessed 30 Sep 2021

  61. Karavelas M (2021) 2D Voronoi diagram adaptor. In: CGAL user and reference manual, 5.3.1 edn. CGAL Editorial Board, CGAL project. https://doc.cgal.org/5.3.1/Manual/packages.html#PkgVoronoiDiagram2. Accessed 23 Jan 2022

  62. Ortiz-Bernardin A, Álvarez C, Hitschfeld-Kahler N, Russo A, Silva-Valenzuela R, Olate-Sanzana E (2019) Veamy: an extensible object-oriented C++ library for the virtual element method. Numer Algor 82(4):1–32

    MathSciNet  Article  Google Scholar 

  63. Mitchell WF (2013) A collection of 2D elliptic problems for testing adaptive grid refinement algorithms. Appl Math Comput 220:350–364

    MathSciNet  MATH  Google Scholar 

Download references

Acknowledgements

This research was supported by the Patagón supercomputer of Universidad Austral de Chile (FONDEQUIP EQM180042). The second author thanks to Fondecyt Project no. 1211484 and the first author to Anid doctoral scholarship 21202379.

Funding

This project was funded by Fondecyt Grant no. 1211484 and Anid doctoral scholarship 21202379.

Author information

Authors and Affiliations

Authors

Contributions

Not applicable.

Corresponding authors

Correspondence to Sergio Salinas-Fernández or Nancy Hitschfeld-Kahler.

Ethics declarations

Conflict of interest

(check journal-specific guidelines for which heading to use) The authors report no conflict of interest.

Ethical approval

Not applicable.

Consent to participate

Not applicable.

Consent for publication

Not applicable.

Editorial Policies for:

Springer journals and proceedings: https://www.springer.com/gp/editorial-policies.

Nature Portfolio journals: https://www.nature.com/nature-research/editorial-policies.

Scientific reports: https://www.nature.com/srep/journal-policies/editorial-policies.

BMC journals: https://www.biomedcentral.com/getpublished/editorial-policies.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix A: Complex geometries

Appendix A: Complex geometries

This appendix presents some examples of Polylla meshes generated using cartography maps obtained from the Library of National Congress of Chile Footnote 3, and the library PyShp Footnote 4. This library was used to read the .shp files, generate the PSLGs and store the information in .poly files. Figure 24 is a Polylla mesh generated from the PSLG of the Los Lagos Region, Fig. 25 is a mesh of the Magallanes Region and Fig. 26 is a mesh of the Budi lake.

Fig. 24
figure 24

Los Lagos Region, Chile. The .poly file contains 294,540 vertices and 294,242 segments. The initial triangulation was generated using triangle [26] with maximum area size of 100,000,000 as option. The resulting triangulation was a conforming Delaunay triangulation with 309,264 vertices, 309,305 triangles and 618,272 edges. The final Polylla mesh contains 309,264 vertices, 12,578 polygons and 321,534 edges

Fig. 25
figure 25

Magallanes Region, Chile. The .poly file contains 1,130,733 vertices and 1,130,752 segments. The initial triangulation was generated using triangle [26] with maximum area size of 100,000,000 as option. The resulting conforming Delaunay triangulation contains 1,148,594 vertices, 1,182,133 triangles and 2,324,968 edges. The final Polylla mesh contains 1,148,594 vertices, 45,300 polygons and 1,186,451 edges

Fig. 26
figure 26

Budi Lake, Araucanía Region, Chile. The .poly file contains 5794 vertices, 5794 constrained edges and 10 holes. The initial triangulation was generated using triangle [26] with maximum area size of 10,000 as option. The resulting conforming Delaunay triangulation contains 12,608 vertices, 19,406 triangles and 32,023 edges. The final Polylla mesh contains 12,608 vertices, 5169 polygons, 17,768 edges and 10 holes (Islands of the lake). Grey polygons are holes

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Salinas-Fernández, S., Hitschfeld-Kahler, N., Ortiz-Bernardin, A. et al. POLYLLA: polygonal meshing algorithm based on terminal-edge regions. Engineering with Computers (2022). https://doi.org/10.1007/s00366-022-01643-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s00366-022-01643-4

Keywords

  • Polygonal mesh
  • Terminal-edge region
  • Virtual element method
  • Delaunay triangulations