Skip to content
Sébastien Mestrallet edited this page Nov 7, 2025 · 5 revisions

https://github.com/LIHPC-Computational-Geometry/dds-hexmeshing (= this repo)

dds-hexmeshing is a rewrite of HexMeshWorkshop (last commit f219695), which was itself a rewrite of Shared polycube pipeline (last commit 9c49b0a)!

Warning

I didn't have time to finish the documentation. Contact me if you have questions, I'll try to remember.

Overview

Setup

Important

dds-hexmeshing is just a set of wrappers, dependencies must be compiled manually and externally then the path to the executables must be given through definitions/paths.yml.

Dependency Notes Required for
automatic_polycube labeling algorithm. not public yet most of the things
Mayo CAD viewer view called on a step data folder
Graphite mesh processing platform view called on a tet-mesh data folder
Gmsh mesh generation Gmsh algo
fastbndpolycube surface polycube generation from a labeling fastbndpolycube
HexBox interactive hex mesh creation/edition HexBox algo
evocube labeling algorithm evocube algo
AlgoHex hex mesh generation AlgoHex algo
ovm.io conversion tool for the OVM file format to convert the outputs of AlgoHex
polycube_withHexEx hex mesh extraction from polycube labelings polycube_withHexEx algo
robustPolycube hex mesh extraction from polycube labelings robustPolycube algo
marchinghex grid-based hex meshing marchinghex algo
hexsmoothing hexahedral mesh smoothing inner_smoothing algo
SALOME the open-source platform for numerical simulation MG-Tetra algo

For Python project management, I'm using Rye, the hassle-free Python experience. It's an all-in-one tool for environment management, Python version management, package building and management, code linting and formatting. See all commands you have access to in a single executable!

Installation should be just a matter of:

  1. Install Rye on your system
  2. Go to your copy of dds-hexmeshing
  3. rye sync to create/update the virtualenv based on pyproject.toml
  4. source .venv/bin/activate (or source .venv/Scripts/activate?) to activate the virtualenv

To interact with the data folders, run the dds.py script. See dds.py help.

Tutorial

Data folder types

step

Store a CAD model in the STEP format

tet-mesh

Store a tetrahedral mesh

labeling

Store a polycube labeling (+/-{X,Y,Z} association to each surface triangle)

hex-mesh

Store an hexahedral mesh

Algorithms

Gmsh

naive_labeling

labeling_painter

graphcut_labeling

evocube

automatic_polycube

HexBox

AlgoHex

marchinghex

polycube_withHexEx

robustPolycube

global_padding

Clone this wiki locally