PyHOPE (Python High-Order Preprocessing Environment) is a framework for generating and converting high-order meshes composed of standard 3D element types, designed for massively parallel spectral element solvers on high-performance computing (HPC) systems. PyHOPE builds on and extends Gmsh (Geuzaine & Remacle, 2009), which is used for the initial mesh generation and/or mesh read-in before conversion of the mesh to its internal representation and application of boundary conditions. Parallel read-in is crucial on HPC clusters, which typically use parallel distributed file systems to enable and scale storage access by striping data across multiple servers. The primary output format of PyHOPE is the HOPR (Hindenlang, 2014) HDF5 curved mesh format, which is specifically designed for parallel read-in of unstructured three-dimensional meshes of arbitrary order, including tetrahedra, pyramids, prisms, and hexahedra. Information stored in HOPR format facilitates non-overlapping input/output (I/O) through collocation of the required mesh information, including the vertex and side information together with element connectivity, in per-element packages. Each package is assigned a unique identifier via ordering along structured dimensions or a space-filling curve.

, , ,
The Open Journal
doi.org/10.21105/joss.08769
Journal of Open Source Software
creativecommons.org/licenses/by/4.0/
Scientific Computing

Kopper, P., Blind, M., Schwarz, A., Kurz, M., Rodach, F., Copplestone, S. M.& Beck, A. (2025). PyHOPE: A Python toolkit for three-dimensional unstructured high-order meshes. Journal of Open Source Software, 10(115), 8769:1–8769:4.https://doi.org/10.21105/joss.08769