TriMe++: Multi-threaded triangular meshing in two dimensions

IF 7.2 2区 物理与天体物理 Q1 COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS Computer Physics Communications Pub Date : 2024-11-22 DOI:10.1016/j.cpc.2024.109442
Jiayin Lu , Chris H. Rycroft
{"title":"TriMe++: Multi-threaded triangular meshing in two dimensions","authors":"Jiayin Lu ,&nbsp;Chris H. Rycroft","doi":"10.1016/j.cpc.2024.109442","DOIUrl":null,"url":null,"abstract":"<div><div>We present <span>TriMe++</span>, a multi-threaded software library designed for generating two-dimensional meshes for intricate geometric shapes using the Delaunay triangulation. Multi-threaded parallel computing is implemented throughout the meshing procedure, making it suitable for fast generation of large-scale meshes. Three iterative meshing algorithms are implemented: the DistMesh algorithm, the centroidal Voronoi diagram meshing, and a hybrid of the two. We compare the performance of the three meshing methods in <span>TriMe++</span>, and show that the hybrid method retains the advantages of the other two. The software library achieves significant parallel speedup when generating large-scale meshes containing between 10<sup>4</sup> to 10<sup>7</sup> points. <span>TriMe++</span> can handle complicated geometries and generates adaptive meshes of high quality.</div></div><div><h3>Program summary</h3><div><em>Program title:</em> <span>TriMe++</span></div><div><em>CPC Library link to program files:</em> <span><span>https://doi.org/10.17632/jxcsxtywtw.1</span><svg><path></path></svg></span></div><div><em>Developer's repository link:</em> <span><span>https://github.com/jiayinlu19960224/TriMe</span><svg><path></path></svg></span></div><div><em>Licensing provisions:</em> BSD 3-clause</div><div><em>Programming language:</em> C++</div><div><em>External routines/libraries:</em> OpenMP, multi-threaded <span>Voro++</span></div><div><em>Nature of problem:</em> Multi-threaded geometry meshing in two dimension using the Delaunay triangulation</div><div><em>Solution method:</em> The <span>TriMe++</span> library is built around several C++ classes that follows a structured meshing pipeline. During initialization, the <span>shape_2d</span> class reads the geometry input and generates a signed distance field using a grid-based data structure to represent the shape. The <span>sizing_2d</span> class subsequently produces adaptive element sizing and density fields for the mesh. It uses an adaptive quad-tree data structure, enabling efficient refinement of sizing and density values in areas with complex geometries. In the meshing procedure, the <span>parallel_meshing_2d</span> class iteratively improves point positions in the mesh. In each meshing iteration, the multi-threaded <span>Voro++</span> library generates the Delaunay triangulation of the points. Users can select from three meshing algorithms, the DistMesh algorithm in the <span>mesh_alg_2d_dm</span> class, the centroidal Voronoi diagram meshing algorithm in the <span>mesh_alg_2d_cvd</span> class, and a hybrid method of the two in the <span>mesh_alg_2d_hybrid</span> class Throughout this meshing workflow, we use OpenMP for multi-threaded parallel computations.</div></div>","PeriodicalId":285,"journal":{"name":"Computer Physics Communications","volume":"308 ","pages":"Article 109442"},"PeriodicalIF":7.2000,"publicationDate":"2024-11-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computer Physics Communications","FirstCategoryId":"101","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0010465524003655","RegionNum":2,"RegionCategory":"物理与天体物理","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS","Score":null,"Total":0}
引用次数: 0

Abstract

We present TriMe++, a multi-threaded software library designed for generating two-dimensional meshes for intricate geometric shapes using the Delaunay triangulation. Multi-threaded parallel computing is implemented throughout the meshing procedure, making it suitable for fast generation of large-scale meshes. Three iterative meshing algorithms are implemented: the DistMesh algorithm, the centroidal Voronoi diagram meshing, and a hybrid of the two. We compare the performance of the three meshing methods in TriMe++, and show that the hybrid method retains the advantages of the other two. The software library achieves significant parallel speedup when generating large-scale meshes containing between 104 to 107 points. TriMe++ can handle complicated geometries and generates adaptive meshes of high quality.

Program summary

Program title: TriMe++
CPC Library link to program files: https://doi.org/10.17632/jxcsxtywtw.1
Developer's repository link: https://github.com/jiayinlu19960224/TriMe
Licensing provisions: BSD 3-clause
Programming language: C++
External routines/libraries: OpenMP, multi-threaded Voro++
Nature of problem: Multi-threaded geometry meshing in two dimension using the Delaunay triangulation
Solution method: The TriMe++ library is built around several C++ classes that follows a structured meshing pipeline. During initialization, the shape_2d class reads the geometry input and generates a signed distance field using a grid-based data structure to represent the shape. The sizing_2d class subsequently produces adaptive element sizing and density fields for the mesh. It uses an adaptive quad-tree data structure, enabling efficient refinement of sizing and density values in areas with complex geometries. In the meshing procedure, the parallel_meshing_2d class iteratively improves point positions in the mesh. In each meshing iteration, the multi-threaded Voro++ library generates the Delaunay triangulation of the points. Users can select from three meshing algorithms, the DistMesh algorithm in the mesh_alg_2d_dm class, the centroidal Voronoi diagram meshing algorithm in the mesh_alg_2d_cvd class, and a hybrid method of the two in the mesh_alg_2d_hybrid class Throughout this meshing workflow, we use OpenMP for multi-threaded parallel computations.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
求助全文
约1分钟内获得全文 去求助
来源期刊
Computer Physics Communications
Computer Physics Communications 物理-计算机:跨学科应用
CiteScore
12.10
自引率
3.20%
发文量
287
审稿时长
5.3 months
期刊介绍: The focus of CPC is on contemporary computational methods and techniques and their implementation, the effectiveness of which will normally be evidenced by the author(s) within the context of a substantive problem in physics. Within this setting CPC publishes two types of paper. Computer Programs in Physics (CPiP) These papers describe significant computer programs to be archived in the CPC Program Library which is held in the Mendeley Data repository. The submitted software must be covered by an approved open source licence. Papers and associated computer programs that address a problem of contemporary interest in physics that cannot be solved by current software are particularly encouraged. Computational Physics Papers (CP) These are research papers in, but are not limited to, the following themes across computational physics and related disciplines. mathematical and numerical methods and algorithms; computational models including those associated with the design, control and analysis of experiments; and algebraic computation. Each will normally include software implementation and performance details. The software implementation should, ideally, be available via GitHub, Zenodo or an institutional repository.In addition, research papers on the impact of advanced computer architecture and special purpose computers on computing in the physical sciences and software topics related to, and of importance in, the physical sciences may be considered.
期刊最新文献
Galactic distribution of supernovae and OB associations ToMSGKpoint: A user-friendly package for computing symmetry transformation properties of electronic eigenstates of nonmagnetic and magnetic crystalline materials curvedSpaceSim: A framework for simulating particles interacting along geodesics Deep learning-enhanced reduced-order ensemble Kalman filter for efficient Bayesian data assimilation of parametric PDEs JAX-based aeroelastic simulation engine for differentiable aircraft dynamics
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1