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

3d-graphics data-management folder-management folder-structure hex-mesh high-level-interfaces mesh-generation mesh-processing polycube python rich wrapper-script
Last synced: 6 months ago · JSON representation ·

Repository

Semantic data folders for hexehedral mesh generation

Basic Info
  • Host: GitHub
  • Owner: LIHPC-Computational-Geometry
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 9.74 MB
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 1
  • Open Issues: 4
  • Releases: 0
Topics
3d-graphics data-management folder-management folder-structure hex-mesh high-level-interfaces mesh-generation mesh-processing polycube python rich wrapper-script
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License Citation

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 ``` coarse mesh of the M7 model
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 ``` fine mesh of the M7 model
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 ``` naive labeling computed on the tetrahedral mesh
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 ``` a labeling obtained with labeling_painter

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 ``` hexmesh obtained with polycube_withHexEx

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 ``` hexmesh post-processed with a global padding


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

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)
Pull Request Authors
Top Labels
Issue Labels
enhancement (3)
Pull Request Labels