Skip to content
Sébastien Mestrallet edited this page Oct 3, 2024 · 4 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

The documentation is not ready yet.

Wait for my PhD to finish or dive into the code at your own risk.

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