A Python library for triangular mesh smoothing and optimization with multiple algorithms and a simple interface.
Optimesh is a Python library for triangular mesh smoothing and optimization, implementing algorithms like CVT, CPT, and ODT to improve mesh quality. It solves the problem of poor element shapes in meshes generated by tools like Gmsh, which can lead to slower convergence and reduced accuracy in numerical simulations. The library provides both command-line and Python interfaces to optimize meshes for better performance in finite element analysis and other computational applications.
Researchers, engineers, and developers working with computational geometry, finite element analysis, or numerical simulations who need to improve mesh quality for better numerical performance. It's particularly useful for those using mesh generators that produce suboptimal triangulations.
Developers choose Optimesh for its implementation of multiple proven mesh optimization algorithms in one package, its support for various mesh formats via meshio, and its ability to significantly improve mesh quality with minimal effort. Its simple interface and focus on triangular meshes make it a practical tool for enhancing simulation reliability.
:spider_web: Mesh optimization, mesh smoothing.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements CVT, CPT, and ODT methods with variants like quasi-Newton iterations, providing a range of proven options for different optimization needs, as detailed in the showcase examples.
Supports optimization on implicitly defined surfaces like spheres through a Python interface, enabling handling of curved geometries without remeshing, demonstrated in the sphere smoothing example.
Leverages meshio to read and write numerous mesh formats, ensuring compatibility with various simulation tools and seamless integration into existing workflows.
Maintains submesh boundaries during optimization, which is essential for preserving simulation domains and conditions, as highlighted in the key features.
Currently only supports triangular meshes, with tetrahedral smoothing being a future consideration (noted in the README), limiting its applicability for 3D volumetric meshes common in simulations.
Requires purchasing licenses for personal and academic use, and commercial use needs direct contact, adding administrative overhead compared to fully open-source projects with permissive licenses.
With multiple methods available, users must experiment or rely on documentation to choose the best one, as the README admits CVT variants often perform best but doesn't automate selection, potentially leading to trial and error.