GTMesh: A Highly Efficient C++ Template Library for Numerical Schemes on General Topology Meshes
Source abstract
Abstract
This article introduces GTMesh, an open-source C++ library providing data structures and algorithms that facilitate the development of numerical schemes on general polytopal meshes. After discussing the features and limitations of the existing open-source alternatives, we focus on the theoretical description of geometry and the topology of conforming polytopal meshes in an arbitrary-dimensional space, using elements from graph theory. The data structure for mesh representation is explained. The main part of the article focuses on the implementation of data structures and algorithms (computation of measures, centers, normals, cell coloring) by using State-of-the-Art template metaprogramming techniques for maximum performance. The geometrical algorithms are designed to be valid regardless of the dimension of the underlying space. As an integral part of the library, a template implementation of class reflection in C++ has been created, which is sufficiently versatile and suitable for the development of numerical and data I/O algorithms working with generic data types. Finally, the use of GTMesh is demonstrated on a simple example of solving the heat equation by the finite volume method.
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Computer Graphics and Visualization Techniques · Advanced Numerical Methods in Computational Mathematics · 3D Shape Modeling and Analysis
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
Department of Mathematics, Faculty of Nuclear Science and Physical Engineering, Czech Technical University in Prague, Trojanova 13, 120 00 Praha 2, Czech Republic
Funding
Research Centre for Low-Carbon Energy Technologies · Centre of Advanced Applied Sciences · Grant Agency of the Czech Technical University in Prague
References (40)
Show source-provided references
1. Johnson, C. (1987). Numerical Solution of Partial Differential Equations by the Finite Element Method, Cambridge University Press.
2. Szabó, B., and Babuška, I. (2021). Finite Element Analysis—Method, Verification, and Validation, Wiley. [2nd ed.].10.1002/9781119426479 ↗
3. Larson, M.G., and Bengzon, F. (2013). The Finite Element Method: Theory, Implementation, and Applications, Springer. [6th ed.]. SI Version.10.1007/978-3-642-33287-6 ↗
4. Logan, D.L. (2021). A First Course in the Finite Element Method, CENGAGE.
5. Finite Volume Methods
6. Moukalled, F., Mangani, L., and Darwish, M. (2016). The Finite Volume Method in Computational Fluid Dynamics: An Advanced Introduction with OpenFOAM and Matlab, Springer.10.1007/978-3-319-16874-6 ↗
7. Blazek, J. (2015). Computational Fluid Dynamics: Principles and Applications, Butterworth-Heinemann.10.1016/B978-0-08-099995-1.00012-9 ↗
8. Application of advanced combustion models in internal combustion engines based on 3-D CFD LES approach10.14311/AP.2021.61.0014 ↗
9. A Quasi-1D Model of Biomass Co-Firing in a Circulating Fluidized Bed Boiler
10. Comparison of hexahedral, tetrahedral and polyhedral cells for reproducing the wind field around an isolated building by LES10.1016/j.buildenv.2021.107717 ↗
11. Polyhedral meshing as an innovative approach to computational domain discretization of a cyclone in a fluidized bed CLC unit10.1051/e3sconf/20171401027 ↗
12. Polyhedral meshing in numerical analysis of conjugate heat transfer10.1051/epjconf/201818002096 ↗
13. Evaluation of the polyhedral mesh style for predicting aerosol deposition in representative models of the conducting airways10.1016/j.jaerosci.2021.105851 ↗
14. OpenFOAM: A C++ library for complex physics simulations
15. Finite volume method with the Soner boundary condition for computing the signed distance function on polyhedral meshes10.1002/nme.6888 ↗
16. Inflow-Based Gradient Finite Volume Method for a Propagation in a Normal Direction in a Polyhedron Mesh10.1007/s10915-017-0364-4 ↗
17. A Brief Review on Polygonal/Polyhedral Finite Element Methods10.1155/2018/5792372 ↗
18. A three-dimensional finite element method with arbitrary polyhedral elements10.1002/nme.1625 ↗
19. Polyhedral finite elements for nonlinear solid mechanics using tetrahedral subdivisions and dual-cell aggregation10.1016/j.cagd.2019.101812 ↗
20. Three-dimensional polyhedral finite element method for the analysis of multi-directional functionally graded solid shells10.1016/j.compstruct.2022.116538 ↗
21. A Finite Element Method on Convex Polyhedra10.1111/j.1467-8659.2007.01058.x ↗
22. Botsch, M., Steinberg, S., Bischoff, S., and Kobbelt, L. (2002, January 29). OpenMesh—A generic and efficient polygon mesh data structure. Proceedings of the 1st OpenSG Symposium, Darmstadt, Germany.
23. PUMI: Parallel unstructured mesh infrastructure10.1145/2814935 ↗
24. Message Passing Interface Forum (2023, July 13). MPI: A Message-Passing Interface Standard Version 4.0. Available online: https://www.mpi-forum.org/docs/mpi-4.0/mpi40-report.pdf.
25. Rudolf, F., Rupp, K., and Weinbub, J. (2014). ViennaGrid 2.1.0—User Manual, Vienna University of Technology. Techreport.
26. Tautges, T.J., Ernst, C., Stimpson, C., Meyers, R.J., and Merkley, K. (2004). MOAB: A Mesh-Oriented Database, Technical Report.10.2172/970174 ↗
27. Configurable Open-source Data Structure for Distributed Conforming Unstructured Homogeneous Meshes with GPU Support
28. A generic grid interface for parallel and adaptive scientific computing. Part II: Implementation and tests in DUNE10.1007/s00607-008-0004-9 ↗
29. TNL: Numerical Library for Modern Parallel Architectures10.14311/AP.2021.61.0122 ↗
30. (2017). Information Technology—Programming Languages—C++, 4th ed. Standard No. ISO/IEC 14882:2014.
31. Vandevoorde, D., Josuttis, N.M., and Gregor, D. (2017). C++ Templates: The Complete Guide, Addison-Wesley. [2nd ed.].
32. Meyer, B. (1988). Object-Oriented Software Construction, Prentice Hall.
33. Bondy, J.A., and Murty, U.S.R. (1976). Graph Theory with Applications, Macmillan London.10.1007/978-1-349-03521-2 ↗
34. Brenner, S., and Scott, R. (2007). The Mathematical Theory of Finite Element Methods, Springer Science & Business Media.
35. Iterative inflow-implicit outflow-explicit finite volume scheme for level-set equations on polyhedron meshes10.1016/j.camwa.2018.06.033 ↗
36. Schroeder, W., Martin, K., and Lorensen, B. (2006). The Visualization Toolkit, Kitware. [4th ed.].10.1016/B978-012387582-2/50032-0 ↗
37. (2017). Information Technology—Programming Languages—C++, 5th ed. Standard No. ISO/IEC 14882:2017.
38. Butcher, J.C. (2008). Numerical Methods for Ordinary Differential Equations, Wiley. [2nd ed.].10.1002/9780470753767 ↗
39. Numerical solution of ordinary simultaneous differential equations of the 1st order using a method for automatic step change10.1007/BF02165587 ↗
40. Jakubec, T. (2021). Numerical Simulation of Multiphase Flow on 3D Unstructured Meshes with an Arbitrary Topology. [Master’s Thesis, Czech Technical University in Prague].