dds-hexmeshing
Semantic data folders for hexehedral mesh generation
https://github.com/lihpc-computational-geometry/dds-hexmeshing
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.8%) to scientific vocabulary
Keywords
Repository
Semantic data folders for hexehedral mesh generation
Basic Info
Statistics
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 4
- Releases: 0
Topics
Metadata Files
README.md
dds-hexmeshing
Semantic data folders (dds) for hexahedral mesh generation
🔄 Changelog • 📖 Documentation
Instead of having: - a local data folder in each code repo (and a total mess inside each of them), - to remember the command line interface of each executable (please, don't learn them by heart), - to include other algorithms in your repo to compare them (adding dependencies and slipping towards enormous repos),
this project make it possible to keep each algorithm small and independent, and offering to the user an object-oriented API on data folders like, for a polycube-based hexahedral mesh generation:
Auto-download the MAMBO dataset:
./dds.py run import_MAMBO ~/data
```diff
📂~/data
+ 📁B0
+ 📁B1
+ ...
+ 📁S45
```
Tetrahedrization of M7 with Gmsh:
./dds.py run Gmsh ~/data/M7 characteristic_length_factor=0.2
| ```diff 📂~/data 📂M7 + 📂Gmsh_0.2 + 📄tet.mesh + 📄surface.obj ``` | ![]() |
Hmm, I need a finer mesh...
./dds.py run Gmsh ~/data/M7 characteristic_length_factor=0.05
| ```diff 📂~/data 📂M7 📁Gmsh_0.2 + 📂Gmsh_0.05 + 📄tet.mesh + 📄surface.obj ``` | ![]() |
Alright. I wonder what the naive labeling looks like.
./dds.py run naive_labeling ~/data/M7/Gmsh_0.05
| ```diff 📂~/data 📂M7 📁Gmsh_0.2 📂Gmsh_0.05 + 📂naive_labeling + 📄surface_labeling.txt 📄tet.mesh 📄surface.obj ``` | ![]() |
Okay, it's not valid. Let me tweak the labeling by hand.
Sure: ./dds.py run labeling_painter ~/data/M7/Gmsh_0.05
| ```diff 📂~/data 📂M7 📁Gmsh_0.2 📂Gmsh_0.05 📁naive_labeling + 📂labeling_painter + 📄surface_labeling.txt 📄tet.mesh 📄surface.obj ``` | ![]() |
Ho-ho! Can you extract a hex-mesh with libHexEx?
Indeed I can: ./dds.py run polycube_withHexEx ~/data/M7/Gmsh_0.05/labeling_painter
| ```diff 📂~/data 📂M7 📁Gmsh_0.2 📂Gmsh_0.05 📁naive_labeling 📂labeling_painter + 📂polycube_withHexEx_1.0 + 📄hex.mesh 📄surface_labeling.txt 📄tet.mesh 📄surface.obj ``` | ![]() |
Fantastic!! Can you also apply a global padding? 🥺
You know I'm just a Python script, right?
./dds.py run globalpadding ~/data/M7/Gmsh0.05/labelingpainter/polycubewithHexEx_1.0
| ```diff 📂~/data 📂M7 📁Gmsh_0.2 📂Gmsh_0.05 📁naive_labeling 📂labeling_painter 📂polycube_withHexEx_1.0 + 📂global_padding + 📄hex.mesh 📄hex.mesh 📄surface_labeling.txt 📄tet.mesh 📄surface.obj ``` | ![]() |
File format conversions required by some algorithms are automatic.
Overview of the data subfolder types (boxes) and the wrapped algorithms (arrows):
mermaid
graph LR
step(step)
stl(stl)
tet-mesh(tet-mesh)
labeling(labeling)
hex-mesh(hex-mesh)
step -- Gmsh --> tet-mesh
tet-mesh -- naive_labeling --> labeling
tet-mesh -- labeling_painter --> labeling
tet-mesh -- graphcut_labeling --> labeling
tet-mesh -- evocube --> labeling
tet-mesh -- automatic_polycube --> labeling
tet-mesh -- HexBox --> hex-mesh
tet-mesh -- AlgoHex --> hex-mesh
tet-mesh -- marchinghex --> hex-mesh
labeling -- polycube_withHexEx --> hex-mesh
labeling -- robustPolycube --> hex-mesh
hex-mesh -- global_padding --> hex-mesh
hex-mesh -- inner_smoothing --> hex-mesh
stl -- MG-Tetra --> tet-mesh
Repository structure:
- definitions/paths.yml: links to external binaries
- definitions/data_folder_types/*: definition of the types that data folders can have (tet-mesh, labeling, etc)
- definitions/algorithms/*: definition of the runnable algorithms, wrapping binaries & creating/updating data folders
- dds.py: command-line arguments interpreter, definitions parser & action execution
- img: images displayed in the README
Owner
- Name: LIHPC-Computational-Geometry
- Login: LIHPC-Computational-Geometry
- Kind: organization
- Location: France
- Repositories: 9
- Profile: https://github.com/LIHPC-Computational-Geometry
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: dds
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Sébastien
family-names: Mestrallet
orcid: 'https://orcid.org/0000-0002-4519-2814'
repository-code: >-
https://github.com/LIHPC-Computational-Geometry/HexMeshWorkshop
abstract: Semantic data folders
keywords:
- mesh-generation
- mesh-processing
- hex-mesh
- polycube
- 3D-graphics
- wrapper-script
- data-management
license: MIT
version: 0.7.0
date-released: '2024-02-12'
GitHub Events
Total
- Issues event: 4
- Watch event: 1
- Push event: 4
- Gollum event: 14
Last Year
- Issues event: 4
- Watch event: 1
- Push event: 4
- Gollum event: 14
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 4
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 4
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- sebmestrallet (4)





